子查询

顾名思义就是嵌套查询,查询中套查询

子查询分为三种情况:
1.单行单列 也就是结果是一个的 例如 1
2.多行单列 也就是结果是一组的 例如(1,2,3)
3.多行多列 也就是结果是一张表的 此不举例

表结构如下:
员工表emp
在这里插入图片描述
部门表dept
在这里插入图片描述

情况1:单行单列
查询薪资大于猪八戒的员工
思考思路 1查出猪八戒的薪资 2查询薪资大于结果1的

select salary  from emp where name='猪八戒'
select * from emp where salary > ( select salary  from emp where name='猪八戒' )

结果如下:
在这里插入图片描述

情况2: 多行单列
查询财务部和市场部所有员工的信息
思路 1查出财务部和市场部的dep_id 结果集是一组
2查出dep_id在结果集1中的员工信息

select did from dept where  dname='财务部' or dname='市场部' 

select * from emp where dep_id in(select did from dept where  dname='财务部' or dname='市场部' )

结果如下:
在这里插入图片描述
情况3:多行多列
查询日期是’2011-11-11’之后的员工信息和部门信息
思路 1查询日期在’2011-11-11’之后的员工信息
2 内连接查询出对应员工的部门信息

select * from emp where join_date>'2011-11-11'
select * from (select * from emp where join_date>'2011-11-11') a,dept where a.dep_id =dept.did

在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐