내가 가지고있는 다음과 같은 3 개 테이블 :선택에 COUNT <X 관계형 데이터베이스에
TestGroup
RecordNumber (PK)
테스트
RecordNumber (PK)
TestGroupRecordNumber (FK)
결과
RecordNumber (PK)
TestRecordNumber (FK)는
기본적 TestGroup의 테스트 그룹이고, 각각의 테스트 결과들을 포함한다. X 결과보다 적은 모든 TestGroup을 선택하고 싶습니다. 어떤 쿼리가이를 성취합니까?
SELECT TG.RecordNumber
FROM TestGroup TG
LEFT JOIN Test T ON TG.RecordNumber = T.TestGroupRecordNumber
LEFT JOIN Result R ON T.RecordNumber = R.TestRecordNumber
GROUP BY TG.RecordNumber
HAVING COUNT(R.TestRecordNumber) < X
나는 또한 테스트 그룹은 아무런 결과가없는 경우에 LEFT JOIN
을 사용하십시오 : 당신은 그냥 GROUP BY
및 HAVING
사용해야하는
SELECT count(1), tg.recordNumber FROM testgroup tg
LEFT JOIN test t ON t.TestGRoupRecordNumber = tg.recordNumber
LEFT JOIN result r ON r.testRecordNumber = t.recordNumber
GROUP by tg.recordNumber
HAVING count(1) < 10