-- 子查询
-- 需求:谁的工资比Abel高
-- 方式1:
SELECT salary
from employees
where last_name='Abel';
SELECT last_name,salary
from employees
where salary>11000;
-- 方式2:自连接
SELECT e2.last_name,e2.salary
from employees e1,employees e2
where e2.salary>e1.salary
and e1.last_name='Abel'
-- 方式3:子连接
SELECT last_name,salary
from employees
where salary>(
SELECT salary
from employees
where last_name='Abel'
)
-- 称谓的规范:外查询(或主查询)、内查询(或子查询)
/*
子查询(内查询)在主查询之前依次执行完成
子查询的结果被主查询(外查询)使用
注意事项:子查询要包含在括号内;将子查询放在比较条件的右侧;单行操作符对应单行子查询,多行操作符对应多行子查询
*/
SELECT last_name,salary
from employees
where (
SELECT salary
from employees
where last_name='Abel'
)
/*
子查询的分类
角度1:从内查询返回的结果条目数
单行子查询 VS 多行子查询(工资大于6K的姓名)
角度2:内查询是否被执行多次
相关子查询 VS 不相关子查询
比如
相关子查询的需求:查询工资大于本部门平均工资的员工信息
不相关子查询的需求:查询工资大于本公司平均工资的员工信息
*/