以下是我的表中的以下记录:
注册学生
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 可以注册该科目。