in 在sql语句中的用法
程序员文章站
2024-03-02 18:44:22
...
查询没有学全所有课的学生的学号、姓名
score表
course表
student表
分析:按要求来题目要求的意思是该学生选修的课程数<总的课程数
思路:
第一步:查询成绩表中学生选课没选足的学号
先根据学号group by 分组
针对分组后的结果 筛选出count(课程号)< course表中总的course数
第二步:对一步查询结果关联student表 使 学号 in (第一步结果集)
总结:先将子查询确定,在用in 关键词关联结果集
SELECT
学号,
姓名
FROM
student
WHERE
学号 IN (
SELECT
`学号`
FROM
score
GROUP BY
学号
HAVING
COUNT(`课程号`) < (
SELECT
COUNT(课程号)
FROM
course
)
)