MySQL数据库练习-7

查询没有学全所有课程的同学的信息


 

分析: 这里我们可以查询学了所有三门课的学生,然后取反,就是没学全的学生信息


 

查询学了所有课程的学生

select sc.sid from sc
  group by sc.sid
  having count(sc.cid)= (select count(cid) from course)

查询结果:

+------+
| sid  |
+------+
| 01   |
| 02   |
| 03   |
| 04   |
+------+

用not in判断对student进行取反查询

select * from student
where student.sid not in (
  select sc.sid from sc
  group by sc.sid
  having count(sc.cid)= (select count(cid) from course)
);

最终结果:

+------+--------+---------------------+------+
| SId  | Sname  | Sage                | Ssex |
+------+--------+---------------------+------+
| 05   | 周梅   | 1991-12-01 00:00:00 | 女   |
| 06   | 吴兰   | 1992-01-01 00:00:00 | 女   |
| 07   | 郑竹   | 1989-01-01 00:00:00 | 女   |
| 09   | 张三   | 2017-12-20 00:00:00 | 女   |
| 10   | 李四   | 2017-12-25 00:00:00 | 女   |
| 11   | 李四   | 2012-06-06 00:00:00 | 女   |
| 12   | 赵六   | 2013-06-13 00:00:00 | 女   |
| 13   | 孙七   | 2014-06-01 00:00:00 | 女   |
+------+--------+---------------------+------+
posted @ 2020-01-08 18:58  lattesea  阅读(294)  评论(0编辑  收藏  举报