一、Mysql 数据库中Exists 关键字的使用
1.Exists是sql语句中用来判断有没有符合条件的,如果有,则执行下面And的查询,没有,则不执行。写法如下:
/*检查Logic Java课程 最近一次考试。如果有成绩达到80分以上者,则显示分数排在前5名学员的学号和分数*/
SELECT `studentNo` AS 学号,`studentResult` 成绩 FROM `result`
WHERE EXISTS (#查询Logic Java 、最后一次考试、成绩大于80的记录
SELECT * FROM `result` WHERE `subjectNo` = (
SELECT `subjectNo` FROM `subject` WHERE `subjectName` = 'Logic Java' #条件1,Logic Java课程
) AND `examDate` = ( #条件2,最近一次考试
SELECT MAX(`examDate`) FROM `result` WHERE `subjectNo` = (
SELECT `subjectNo` FROM `subject`
WHERE `subjectName` = 'Logic Java')
) AND `studentResult` > 50 ; #条件3,成绩达到80分以上
)
AND `subjectNo` = ( SELECT `subjectNo` FROM `subject`
WHERE `subjectName` = 'Logic Java')
ORDER BY `studentResult` DESC LIMIT 5; #按成绩降序排序,显示前5名
大家看懂了吗?学习方法小建议,把代码复制到Sqlyog上,通过点击一个一个括号来厘清层级关系,肉眼看真的挺难。