7.6-子查询

学生表:

01.png

班级表:

02.png

在一个 select 语句中,嵌入了另外一个 select 语句, 那么被嵌入的 select 语句称之为子查询语句

子查询分类

  • 标量子查询: 子查询返回的结果是一个数据(一行一列)

  • 列子查询: 返回的结果是一列(一列多行)

  • 行子查询: 返回的结果是一行(一行多列)

1.标量子查询

查询年龄大于平均年龄的学生

select * from students where age > (select avg(age) from students);

2.列级子查询

查询还有学生在班的所有班级名字

select name from classes where id in (select cls_id from students);

3.行级子查询

查找班级年龄最大,身高最高的学生

select * from students where (height,age) = (select max(height),max(age) from students);

4. 子查询和关联查询综合

1) 分别查看 男/女 最大年龄,最小年龄,平均年龄:
select gender,max(age),min(age),avg(age) from students group by gender having gender in ('男',"女");
2) 分别查看 男/女 最大年龄的人 具体的名字:
select students.name,students.gender,new_students.max_age from students  inner join (
select gender,max(age) as max_age from students group by gender having in ('男','女') 
) as new_students 
on  students.gender=new_students.gender and students.age=new_students.max_age;
08.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容