表子查询
概念
- 子查询返回的结果是多行多列 , 表子查询和行子查询非常相似,只是行子查询需要产生行元素,表子查询没有
- 行子查询是用于where条件判断,是属于where子查询
- 表子查询是用于from数据源,是属于from子查询
语法
select 字段列表 from (表子查询) as 别名 [where] [group by] [having] [order by] [limit];
案例
- 获取每个班身高最高的学生(一个)
- 将每个班最高的学生排在最前面,order by
- 再针对结果进行order by : 保留每组的第一个
select * from (select * from my_student order by stu_height desc) as temp group by class_id;