Mysql 在另一个表查询中插入最大行数

Mysql 在另一个表查询中插入最大行数,mysql,sql,relational-database,Mysql,Sql,Relational Database,我有三张桌子。 我需要在人员培训表中插入接近最大人数的人员。人员培训表具有所需的最大人数 比如我有30个人,要求的人数是27人,27人应该被插入到人员培训表中 同样地,如果需要的人数是15人,并且已经分配了15人,我不需要插入任何内容 这能做到吗 Person Pk personId firstName lastName Person_Training PK FK personId PK FK trainingId signed Training T trainingId Locati

我有三张桌子。 我需要在人员培训表中插入接近最大人数的人员。人员培训表具有所需的最大人数

比如我有30个人,要求的人数是27人,27人应该被插入到人员培训表中

同样地,如果需要的人数是15人,并且已经分配了15人,我不需要插入任何内容

这能做到吗

Person
Pk personId
firstName
lastName

Person_Training
PK FK personId
PK FK trainingId
signed   

Training
T trainingId
Location
personsNeeded
date
我试过了,但没有用

INSERT INTO Person_Training(personId,trainingId)
SELECT personId , trainingId
  FROM Person , Training
 WHERE Training.date = '9-10-2013'
Having COUNT(Person.personId) < Training.personsNeeded 
插入个人培训(personId,trainingId)
选择personId,trainingId
来自个人、培训
其中Training.date='9-10-2013'
有计数(Person.personId)
看起来您缺少的只是所有表的连接

from Person 
inner join person_Training on person_Training.personID = Person.PersonID
inner join Training on Training.trainingID = Person_Training.trainingID
不要忘记所有选定字段上的GROUPBY子句。group by在Having子句之前

Group by Person.personID, Training.trainingID

Person.personseeded不正确。personsNeeded列位于培训表中。这应该是训练。人员需要是的,这是一个输入错误,但它仍然不起作用,但我不能在where或select中计数。我该怎么办