0

次の3つのテーブルがあります。

TestGroup RecordNumber
(pk)

Test
RecordNumber (pk)
TestGroupRecordNumber(fk)

結果
RecordNumber (pk)
TestRecordNumber(fk)

基本的に、TestGroupはテストのグループであり、各テストには多数の結果が含まれています。結果がX未満のすべてのテストグループを選択したいと思います。どのクエリがこれを達成しますか?

4

2 に答える 2

6

次の句使用する必要があります。

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
于 2013-01-31T21:05:39.820 に答える
3

あなたはただ使用する必要がありGROUP BYますHAVING

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テストグループに結果がないか、テストがない場合にも使用します。

于 2013-01-31T21:07:05.607 に答える