检查是否存在组合字段

时间:2012-12-09 21:33:11

标签: mysql

我有一个查询,显示可供学生注册的模块并在列表中显示它们。如果学生注册的模块没有显示在列表中,我希望这样。一旦学生注册了一个模块,它就存储在一个名为tbl_studentModule的表中,该表有两个字段:regNum($ studentID)和moduleID。

我需要添加到此查询中以仅显示tbl_studentModule中尚未包含相关regNum的模块。

EG如果tbl_studentModule,我会更喜欢查询说一下regNum和moduleID的组合不存在的效果。

这是我到目前为止所拥有的......

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%'

希望有道理......

1 个答案:

答案 0 :(得分:1)

好的,我怀疑了..

我添加了

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

如果查询结束那么现在它只显示表中尚未包含该值组合的行