2013-01-31 1 views
0

내가 가지고있는 다음과 같은 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 BYHAVING 사용해야하는

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 

답변

6

사용한다 절을 가진 또는 테스트가 없습니다.

관련 문제