次の3つのテーブルがあります。
TestGroup RecordNumber
(pk)
Test
RecordNumber
(pk)
TestGroupRecordNumber(fk)
結果
RecordNumber
(pk)
TestRecordNumber(fk)
基本的に、TestGroupはテストのグループであり、各テストには多数の結果が含まれています。結果がX未満のすべてのテストグループを選択したいと思います。どのクエリがこれを達成しますか?
次の3つのテーブルがあります。
TestGroup RecordNumber
(pk)
Test
RecordNumber
(pk)
TestGroupRecordNumber(fk)
結果
RecordNumber
(pk)
TestRecordNumber(fk)
基本的に、TestGroupはテストのグループであり、各テストには多数の結果が含まれています。結果がX未満のすべてのテストグループを選択したいと思います。どのクエリがこれを達成しますか?
次の句を使用する必要があります。
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
あなたはただ使用する必要があり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
テストグループに結果がないか、テストがない場合にも使用します。