子查询
子查询也被称为嵌套查询,是位于另一个查询的WHERE子句里的查询,他返回的数据通常在主查询里作为一个条件,从而进一步限制数据库返回的数据。他可以用于SELECT、INSERT、UPDATE、DELETE语句。
在某些情况下,子查询能够间接地基于一个或多个条件把多个表中的数据关联起来,从而代替连接操作。当在查询中使用子查询,子查询首先被执行,然后主查询根据子查询返回的结果执行。子查询的结果用于在主查询的WHERE子句中处理表达式,逻辑和关系操作符(如=、>、<、 <>、!=、 IN、 NOT IN、 AND、 OR)都可以用于子查询。
子查询的基本语法如下:
SELECT 字段列表
FROM 数据源
WHERE 字段名 逻辑或关系操作符 (SELECT 字段名 FROM 数据源 WHERE 条件表达式)
常见问题分析
1、整个select语句的执行过程
- 读取FROM子句中的基本表、视图的数据,执行笛卡尔积操作。
- 选取满足WHERE子句中给出的条件表达式的元组。
- 按GROUP子句中指定的属性列的值分组,同时提