·概念
子查询
sub query,查询是在某个查询结果之上进行的(一条select语句内部包含了另外一条select语句),被嵌入的select语句称为子查询语句。
主查询
主要的查询对象,第一条select语句,确定了用户所有的数据目标(数据源),以及要具体得到的字段信息。
关系
- 子查询是嵌入主查询中的
- 子查询是辅助主查询的:要么作为条件,要么作为数据源
- 子查询可以独立存在:是一条完整的select语句
·分类
按位置分类:
- Where子查询:子查询出现where条件中
- From子查询:子查询出现在from数据源中(做数据源)
按结果(功能)分类:
- 标量子查询:子查询得到的结果是一行一列
- 列子查询:子查询得到的结果是一列多行
- 行子查询:子查询得到的结果是一行多列(多行多列)
(上面出现的位置都是在where之后) - 表子查询:子查询得到的结果是多行多列(出现的位置是在from之后)
- Exists子查询:返回的结果1 或者 0
·标量子查询
子查询得到的结果是一行一列
select * from 数据源 where 条件判断 = / <> (select 字段名 from 数据源 where 判断条件 )
--实例
--获取wkm的班级名字
--需求决定主查询,条件决定子查询
select * from my_class where id =