查询语句里最实用的还得是嵌套查询,像找“选了 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,可以先从这类实战例子练起,挺有。