Mysql 数据库中Exists 关键字的使用

一、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上,通过点击一个一个括号来厘清层级关系,肉眼看真的挺难。



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值