[SQL] 查询每科成绩都大于80分的学生的所有科目信息 →→→→→进入此内容的聊天室

来自 Putrid Iguana, 2022-05-12, 写在 SQL, 查看 70 次.
URL http://www.code666.cn/view/be2a3a09
  1. TABLE_NAME:score
  2. id  name    object  score
  3. 1   小强  语文  85
  4. 2   小强  数学  73
  5. 7   小强  美术  90
  6. 5   小狗  语文  80
  7. 6   小狗  数学  92
  8. 9   小狗  美术  95
  9. 3   小花  语文  70
  10. 4   小花  数学  79
  11. 8   小花  美术  85
  12.  
  13.  
  14. SELECT * FROM score a WHERE a.score >= 80 AND NOT EXISTS(SELECT 1 FROM score b WHERE b.`name`=a.`name` AND b.object != a.object AND b.score < 80) ORDER BY a.`name`;
  15. 该语句的思路是:查出当前用户的信息,只要不存在:同用户、不同科目、分数小于80
  16.  
  17. SELECT * FROM score a WHERE a.`name` NOT IN (SELECT DISTINCT(b.`name`) FROM score b WHERE b.score < 80)
  18. 该语句的思路是:查询每科成绩都大于80分的学生的所有科目信息,也就是说只要有一科分数小于80分的就不满足条件
  19.  
  20. 相对两个语句来说,第二句思路好理解一点。应该还有其他很多种写法实现这种查询,欢迎指点!
  21.  

回复 "查询每科成绩都大于80分的学生的所有科目信息"

这儿你可以回复上面这条便签

captcha