列子查询
概述
子查询返回的结果是一列(可以是多行)这种子查询称为列子查询
常用的操作符 IN,NOT IN, ANY, SOME,ALL
操作符 | 描述 |
---|---|
IN | 在指定的集合范围之类,多选一 |
NOT IN | 不在指定的集合范围之内 |
ANY | 子查询返回列表中,有任意满足一个即可 |
SOME | 与 ANY 等同,使用 SOME 的地方都可以使用 ANY |
ALL | 子查询返回列表的所有值都满足才行 |
案例
查询销售部
和市场部
所有的员工信息
- 查询
销售部
和市场部
ID
bash
select id from dept where name = '销售部' or name = '市场部';
- 查询
销售部
和市场部
员工信息
bash
select * from emp where dept_id in (select id from dept where name = '销售部' or name = '市场部');
查询比财务部所有人工资都高的员工信息
- 查询财务部部门 ID
bash
select id from dept where name = '财务部';
- 查询财务部所有人的工资
bash
select salary from emp where dept_id = (select id from dept where name = '财务部');
- 查询比财务部所有人工资都高的员工信息
bash
select * from emp where salary > all (select salary from emp where dept_id = (select id from dept where name = '财务部'));
查询比研发部其中任意一人工资高的员工信息
- 查询研发部门 ID
bash
select id from dept where name = '研发部';
- 查询研发部任意一个人的工资
bash
select salary from emp where dept_id = (select id from dept where name = '研发部');
- 查询比研发部其中任意一人工资高的员工信息
bash
select * from emp where salary > any (select salary from emp where dept_id = (select id from dept where name = '研发部'));