【mysql】成绩单表,找到所有成绩都不及格的所有人
生活随笔
收集整理的這篇文章主要介紹了
【mysql】成绩单表,找到所有成绩都不及格的所有人
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
簡述
這里考慮到兩種情況。如果人的信息和成績的信息都在一個表上,和在不同的表上的。
文章目錄
- 簡述
- 在一個表上的時候
- 在兩張表上
在一個表上的時候
先看看數據
mysql> select * from sc; +---------+-----+-------+ | sno | cno | grade | +---------+-----+-------+ | 2005001 | 1 | 87.00 | | 2005001 | 2 | 67.00 | | 2005001 | 3 | 90.00 | | 2005002 | 2 | 95.00 | | 2005003 | 3 | 88.00 | | 2005003 | 7 | NULL | | 2005010 | 1 | 87.00 | | 2005010 | 2 | NULL | | 2005010 | 3 | 80.00 | | 2005010 | 4 | 87.00 | | 2005010 | 6 | 85.00 | | 2005011 | 1 | 52.00 | | 2005011 | 2 | 47.00 | | 2005011 | 3 | 53.00 | | 2005011 | 5 | 45.00 | | 2005012 | 1 | 84.00 | | 2005012 | 3 | NULL | | 2005012 | 4 | 67.00 | | 2005012 | 5 | 81.00 | | 2005012 | 7 | NULL | +---------+-----+-------+ 20 rows in set (0.00 sec)查詢方法
mysql> select sno from sc-> group by sno-> having max(grade) < 60; +---------+ | sno | +---------+ | 2005011 | +---------+ 1 row in set (0.00 sec)在兩張表上
比如,還是基于剛剛的問題,我這時候需要獲得這個編號所對應的人的名字和信息。
mysql> select * from student s-> where s.sno in (-> select sno from sc-> group by sno-> having max(grade) < 60-> ); +---------+--------+------+------+-------+ | sno | sname | sage | ssex | sdept | +---------+--------+------+------+-------+ | 2005011 | 張麗萍 | 19 | 女 | Ch | +---------+--------+------+------+-------+ 1 row in set (0.01 sec)mysql>如果想要基于這張表還創建一個新的表。
mysql> create table ts-> ( select * from student s-> where s.sno in (-> select sno from sc-> group by sno-> having max(grade) < 60-> )); Query OK, 1 row affected (0.18 sec) Records: 1 Duplicates: 0 Warnings: 0看看新表的結果
mysql> select * from ts; +---------+--------+------+------+-------+ | sno | sname | sage | ssex | sdept | +---------+--------+------+------+-------+ | 2005011 | 張麗萍 | 19 | 女 | Ch | +---------+--------+------+------+-------+ 1 row in set (0.00 sec)總結
以上是生活随笔為你收集整理的【mysql】成绩单表,找到所有成绩都不及格的所有人的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【mysql解决办法】insert in
- 下一篇: 【mysql解决方案】ERROR 124