请查看此 SQL Fiddle 的表格以及我尝试过的查询:
SQL Fiddle
所以基本上,我有两个表,即tbl_curriculum和tbl_enrolled_subjects。
tbl_curriculum包含学生应根据其课程 (course_id) 学习的所有科目 (subject_id)。
tbl_enrolled_subjects包含学生根据tbl_curriculum学习/注册的所有科目。
我想检查学生学习了哪些科目,哪些没有,查询应该返回如下内容:
Subject_id|Grade|Status
23 | 2 |Passed
24 | 2 |Passed
31 | 2 |Passed
50 | 2 |Passed
83 | 1 |Passed
27 |NULL |NULL
28 |NULL |NULL
29 |NULL |NULL
. . . 等等。
带有 Grade 和 Status 的 Subject_ID 表示学生已经学习了该科目。另一方面,NULL 值表示学生尚未参加这些科目。
我使用了这个查询:
SELECT a.subject_id, b.grade, b.status
FROM tbl_curriculum a
LEFT JOIN tbl_enrolled_subjects b
ON a.course_id = b.course_id AND a.subject_id = b.subject_id
WHERE b.student_id_no='05-0531';
但我一直只得到学生所学的科目。
Subject_id|Grade|Status
23 | 2 |Passed
24 | 2 |Passed
31 | 2 |Passed
50 | 2 |Passed
83 | 1 |Passed
我错过了什么吗?提前致谢。