テーブルと私が試したクエリについては、このSQL Fiddleを参照してください:
SQL Fiddle
つまり、基本的に、tbl_curriculumとtbl_enrolled_subjectsという2つのテーブルがあります。
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
私は何かが足りないのですか?前もって感謝します。