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辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 子查询 SELECT 语句是 SQL 的查询。 假如要从多个表中过滤数据,SQL 还允许创建子查询(subquer...
    杜大个阅读 992评论 0赞 0
  • 子查询 在一个 select 语句中,嵌入了另外一个 select 语句, 那么被嵌入的 select 语句称之为...
    GaoYuan117阅读 218评论 0赞 0
  • 总体内容 一、数据准备、基本的查询 二、条件查询 三、排序 四、聚合、分组 五、分页 六、连接查询(多表的时候有用...
    IIronMan阅读 4,603评论 1赞 10
  • 总体内容 一、数据准备、基本的查询 二、条件查询 三、排序 四、聚合、分组 五、分页 六、连接查询(多表的时候有用...
    有怪兽103阅读 340评论 0赞 0
  • 目录 一、查询准备 二、条件查询 三、排序 四、聚合函数 五、分组 六、分页 七、连接查询 八、自关联 九、子查询...
    梦里才是真阅读 672评论 0赞 3

友情链接更多精彩内容