查询语句里最实用的还得是嵌套查询,像找“选了 2 门以上课程的学生”这种条件,不用它真的挺麻烦。你看下面这段代码就能搞定:
select sno, sname
from s
where sno in (
select sno
from sc
group by sno
having count(*) > 2
)
写法还挺清晰的,group by
分组,having
过滤,in
套一层查询结果,就能精准找出满足条件的学生。
嵌套查询的优势就在于结构灵活。尤其在做一些统计筛选时,比如选修某门课的学生里,找成绩排名前几的,或者像这种查“选了 2 门以上的学生”,子查询+聚合函数就方便。
如果你是做课程管理系统的,这种查询简直是刚需。哦对了,顺手放几个相关文章给你看看,都是挺实用的:
- SQL 语言基础按成绩降序排列选修课程 3 的学生
- mysql 多重完整嵌套查询语句详解
- 创建学生信息视图,展示课程数量和加权平均分
嵌套用得多了,也别怕绕,只要你保持结构清晰,多调试一下,逻辑一顺,效率也高。如果你刚上手 SQL,可以先从这类实战例子练起,挺有。