0

学生が登録できるモジュールを表示し、それらをリストに表示するクエリがあります。学生が登録したモジュールがリストに表示されない場合は、それが必要です。学生がモジュールに登録すると、regNum ($studentID) と moduleID の 2 つのフィールドを持つ tbl_studentModule というテーブルに保存されます。

関連する regNum を持つ tbl_studentModule にまだ含まれていないモジュールのみを表示するには、このクエリに何を追加する必要がありますか。

EG tbl_studentModule.

これが私がこれまでに持っているものです...

SELECT DISTINCT am.moduleID, m.moduleName, am.type, s.regNum, s.award
FROM tbl_awardModules am
LEFT OUTER JOIN tbl_module m ON am.moduleID = m.moduleID
INNER JOIN tbl_awardLevels al ON am.awardLevelID = al.awardLevelID
INNER JOIN tbl_award a ON al.awardID = a.awardID
INNER JOIN tbl_student s ON a.awardID = s.award
LEFT JOIN tbl_studentModules sm ON s.regNum = sm.regNum
WHERE am.type <> 'C' AND sm.regNum = '$student_id' AND m.moduleName <> 'A_null_Choice' AND m.moduleName NOT LIKE '%Not Running%'

それが理にかなっていることを願っています...

4

1 に答える 1

1

わかりました、私はそれを考えました..

追加した

AND NOT EXISTS (SELECT * FROM tbl_studentModules WHERE regNum = '$student_id' AND moduleID = am.moduleID)

クエリの場合は最後まで、その値の組み合わせがまだ含まれていないテーブルの行のみが表示されます

于 2012-12-10T00:23:29.103 に答える