mysql

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;
上一篇 下一篇

猜你喜欢

热点阅读