私のテーブル内の次のレコードは次のとおりです。
入学する学生
EnrollID StudentID SubjID
1 1 1
2 1 2
3 1 3
4 2 1
5 3 2
学生
StudentID UserID YearID FirstName LastName
1 1 1 John Doe
2 3 1 Peter Pan
3 7 1 Isaac Newton
科目
SubjID SubjCode YearID
1 English 1
2 Math 1
3 Science 1
出力は...
StudentID FullName
2 Peter Pan
3 Isaac Newton
以下のSQL文を思いつくことができました(Icさんのおかげです) 。
SELECT s.StudentID, s.FirstName + ' ' s.LastName AS FullName
FROM Students AS s
LEFT OUTER JOIN EnrollStudents AS es ON s.StudentID = es.StudentID
GROUP BY s.StudentID, s.FirstName, s.LastName
HAVING COUNT(DISTINCT(es.SubjID)) < (SELECT COUNT(*) FROM Subjects)
件名でクエリをフィルタリングする方法はありますか? 私が英語を選択したとしましょう。Isaac Newton だけが科目を登録できます。