Mysql 检查字段组合是否存在
我有一个查询,显示学生可以注册的模块,并将其显示在列表中。。如果学生注册的模块没有显示在列表中,我会这样做。学生注册模块后,该模块将存储在名为tbl_studentModule的表中,该表有两个字段:regNum($studentID)和moduleID 我需要添加什么到这个查询中,以仅显示tbl_studentModule中没有的模块以及相关的regNum 例如,如果tbl_studentModule不存在regNum和moduleID的组合,我希望这个查询说明一些情况 这是我到目前为止所拥有的Mysql 检查字段组合是否存在,mysql,Mysql,我有一个查询,显示学生可以注册的模块,并将其显示在列表中。。如果学生注册的模块没有显示在列表中,我会这样做。学生注册模块后,该模块将存储在名为tbl_studentModule的表中,该表有两个字段:regNum($studentID)和moduleID 我需要添加什么到这个查询中,以仅显示tbl_studentModule中没有的模块以及相关的regNum 例如,如果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%'
选择不同的am.moduleID、m.moduleName、am.type、s.regNum、s.award
来自tbl_AwardAM模块
左外连接tbl_模块m在am.moduleID=m.moduleID上
am.awardLevelID=al.awardLevelID上的内部连接tbl_awardLevels al
内部连接tbl_在al.awardID=a.awardID上授予a
在a.awardID=s.award上内部加入tbl_学生
在s.regNum=sm.regNum上左连接tbl_studentModules sm
其中am.type“C”和sm.regNum=“$student\u id”和m.moduleName“A\u null\u Choice”和m.moduleName与“%NOT Running%”不同
希望这是有意义的…好的,我用过了
我补充说
AND NOT EXISTS (SELECT * FROM tbl_studentModules WHERE regNum = '$student_id' AND moduleID = am.moduleID)
最后,如果查询现在如此,它只显示表中尚未包含该值组合的行