侧边栏壁纸
博主头像
小鱼吃猫博客博主等级

你所热爱的,便是你的生活。

  • 累计撰写 113 篇文章
  • 累计创建 47 个标签
  • 累计收到 9 条评论

目 录CONTENT

文章目录

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

小鱼吃猫
2023-11-04 / 0 评论 / 0 点赞 / 17 阅读 / 1221 字

背景

MySQL经典练习题及答案,常用SQL语句练习50题

题目描述

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

答案

s_ids_names_births_sex
05周梅1991-12-01
06吴兰1992-03-01
07郑竹1989-07-01
08王菊1990-01-20

题目解析

这个题目咋一看比较复杂,把问题转化一下:假设总课程数是n,查询出所学课程数小于n的学生信息。这样,只需要求出n和每个学生所学的课程数即可。

  • 每个学生课程数
select stu.s_id, count(sc.c_id)
from student stu
    left join score sc
       on stu.s_id = sc.s_id
group by stu.s_id
  • 总课程数n
 select count(c_id) from course
  • 将n作为第一个sql的查询条件,使用having连接。完整sql如下
select stu.*
from student stu
    left join score sc
       on stu.s_id = sc.s_id
group by stu.s_id
having count(sc.c_id) < 
    (select count(c_id) from course);
0

评论区