请看看这个SQL捣鼓表和何种查询我曾尝试空值:
SQL Fiddle如何返回使用SQL左连接
所以基本上,我有两个表,即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
。 。 。 等等。
具有成绩和状态的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
我错过了什么吗?提前致谢。
你不能,where子句需要评估为真 – ajreal
@ajreal我应该怎么做呢? –