一、含义
嵌套在其他语句内的select语句成为子查询或内查询
外面的语句为主查询或外查询
二、分类
1、按出现的位置
select 后面:
仅仅支持标量子查询
from后面:
表子查询
where |having 后面:
标量子查询
列子查询
行子查询
exists后面: 四种都可以
2、按结果集的行列
标量子查询(单行子查询):结果集为一行一列
列子查询(多行子查询):结果集为多行一列
行子查询:结果集为多列多行
表子查询:结果集为多列多行
三、示例
where 或having 后面
1、标量子查询
案例:查询最低工资的员工的员工姓名和工资
1)最低工资
select min(salary)
from employees;
2)查询员工的员工姓名和工资,要求工资=(1)
select last_name,salary
from employees
where salary=(
select min(salary)
from employees
);
2、列子查询
案例:查询所有是领导的员工姓名
1)查询所有员工的 manager_id
select manager_id
from employees;
2)查询员工姓名,manager_id属于员工姓名中的一个 即用in
select last_name,
from empoyees
where manager_id in(
select manager_id
from employees
);