select语句当中嵌套select语句,被嵌套的select语句就是子查询。
子查询可以出现在哪里?
select ..(select).. from ..(select).. where ..(select)..
我们通过以下三张表 1、员工表 2、部门表 3、薪资表 来演示子查询的三种情况
员工表
部门表
薪资等级表
1)查询薪资大于平均薪资的员工(where后面跟select)
select e.ename , e.sal from emp e where e.sal > (select avg(sal) from emp );
薪资大于平均薪资的员工信息
2、找出每个部门平均的薪资等级(from 后面跟select)
select d.dname , t.avgsal , s.grade from (select deptno , avg(sal) as avgsal from emp group by deptno) t join dept d on t.deptno = d.deptno join salgrade s on t.avgsal between s.losal and s.hisal;
每个部门的平均薪水等级
3、找出每个员工所在部门的名称(select 后面跟select)
select e.ename , (select d.dname from dept d where d.deptno = e.deptno) from emp e;
每个员工的部门名称