【发布时间】:2016-11-08 22:09:05
【问题描述】:
我有这张桌子:
- 学生(姓名、学生编号)- 学生表
- Enrollments (enrollmentNumber, studentNumber, subject) - 包含学生已注册科目的表格
- Grades (studentNumber, subject, grade) - 包含测试成绩的表格
我有这个任务:
编写一条返回学生姓名、注册科目和学生成绩的 SQL 指令 在题目中获得。 SQL 指令还应该返回注册了 科目并且没有参加该科目的考试(在这种情况下,学生将出席 在 Enrollments 表中,但不在 Grades 表中)。
我开发了这个查询:
SELECT * FROM student s
LEFT JOIN enrollments e ON s.studentNumber = e.studentNumber
LEFT JOIN grades g ON e.studentNumber = g.studentNumber
WHERE e.subject = g.subject
我知道错误在最后一个 WHERE,因为没有显示没有成绩的注册(这是有道理的)...谁能帮我解决这个问题?
【问题讨论】:
-
尝试将第二个 LEFT JOIN 改为学生表
-
查询正在运行,但没有按预期工作,我真的希望当该注册+学生编号没有成绩时,注册行会出现在输出中