2013-04-11 2 views
0

세 개의 테이블이 있습니다. 사람 트레이닝 테이블에 최대한 많은 인원을 삽입해야합니다. 사람 교육 테이블에는 최대 인원이 필요합니다.다른 테이블에 최대 행 수를 입력하십시오.

그래서 예를 들어 내가 30 명을 가지고 필요한 금액은 27처럼 27 명

마찬가지로 15, 15처럼 이미 나는 돈 할당 필요한 사람의 양이 경우 사람의 훈련 테이블에 삽입해야한다입니다 삽입 할 물건이 필요 없다.

이는 모든 테이블의 결합 내가 뭔가를 누락하는 모든처럼 보이는 아무 소용이

INSERT INTO Person_Training(personId,trainingId) 
SELECT personId , trainingId 
    FROM Person , Training 
WHERE Training.date = '9-10-2013' 
Having COUNT(Person.personId) < Training.personsNeeded 
+0

Person.personsNeeded가 잘못되었습니다. personsNeeded 열은 Training 테이블에 있습니다. 그것은 훈련이어야합니다 .personsNeeded –

+0

예. 오타 였지만 여전히 작동하지 않습니다. – Marc

+0

[WHERE' 절에 있어야하는 항목에는 'HAVING'을 사용하지 마십시오.] (https : //dev.mysql. co.kr/doc/refman/5.5/ko/select.html) – peterm

답변

0

것이 아니라이 시도

Person 
Pk personId 
firstName 
lastName 

Person_Training 
PK FK personId 
PK FK trainingId 
signed 

Training 
T trainingId 
Location 
personsNeeded 
date 

입니다 수행 할 수 있습니다.

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

선택한 모든 입력란에 group by 절을 잊지 마세요. Having 절 앞에 그룹이 있습니다.

Group by Person.personID, Training.trainingID 
관련 문제