⼦查询
1,子查询的概念
在⼀个 select 语句中,嵌⼊了另外⼀个 select 语句, 那么被嵌⼊的 select 语句称之为⼦
查询语句
2,主查询
主要查询的对象,第一条select语句
3,主查询与子查询的关系
- 子查询是嵌入到主查询中
- 子查询是辅导主查询的,要么充当条件,要么充当数据源
- ⼦查询是可以独⽴存在的语句,是⼀条完整的 select 语句
4. ⼦查询分类
- 标量⼦查询: ⼦查询返回的结果是⼀个数据(⼀⾏⼀列)
- 列⼦查询: 返回的结果是⼀列(⼀列多⾏)
- ⾏⼦查询: 返回的结果是⼀⾏(⼀⾏多列)
4.1 标量⼦查询
- 查询班级学⽣平均年龄
- 查询⼤于平均年龄的学⽣
查询班级学⽣的平均⾝⾼
select * from students where age = (select avg(age) from students);
4.2 列级⼦查询
- 查询还有学⽣在班的所有班级名字
- 找出学⽣表中所有的班级 id
- 找出班级表中对应的名字
select name from classes where id in (select cls_id from students);
4.3 ⾏级⼦查询
- 需求: 查找班级年龄最⼤,⾝⾼最⾼的学⽣
- ⾏元素: 将多个字段合成⼀个⾏元素,在⾏级⼦查询中会使⽤到⾏元素
4.4 ⼦查询中特定关键字使⽤
- in 范围
- 格式: 主查询 where 条件 in (列⼦查询)