請看看這個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我應該怎麼做呢? –