DQL_子查询
2019-07-06 本文已影响0人
_narcissus
子查询
select语句中嵌套select语句,被嵌套的select语句是子查询
子查询可以出现的地方
select
...(select)...
from
...(select)...
where
...(select)...
where子句中使用子查询
案例:找出高于品均薪资的员工信息
select * from emp where sal > (select avg(sal) from emp);
from后面嵌套子查询
将查询出来的表作为新的表,当比较的表中有需要做计算的,将计算结果作为新的表
案例:找出每个部门平均薪水的薪资等级
select
t.*,s.grade
from
(select deptno,avg(sal) as avgsal from emp group by deptno) t
join
salgrade s
on
t.avgsal between s.losal and s.hisal;
案例:找出每个部门平均的薪水等级
select
e.deptno,avg(s.grade)
from
emp e
join
salgrade s
on
e.sal between s.losal and s.hisal
group by
e.deptno;
select后面嵌套子查询
案例:找出每个员工所在的部门名称,要求显示员工名和部门名
select
e.ename,d.dname
from
emp e
join
dept d
on
e.deptno=d.deptno;
select
e.ename,(select d.dname from dept d where e.deptno=d.deptno) as dname
from
emp e;