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

时间:2013-04-11 20:16:19

标签: 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
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 

1 个答案:

答案 0 :(得分:0)

看起来你所缺少的就是加入所有表格。

from Person 
inner join person_Training on person_Training.personID = Person.PersonID
inner join Training on Training.trainingID = Person_Training.trainingID

不要忘记所有选定字段的group by子句。 group by在Having子句

之前
Group by Person.personID, Training.trainingID