where后面嵌套子查询
什么是子查询?子查询都可以出现在哪里?
select 语句当中嵌套select语句,被嵌套的select语句是子查询。
子查询可以出现在哪里?
select
……(select).
from
……(select).
where
……(select).
where 子句中使用子查询
案例:找出高于平均薪资的员工信息
select name,sal from emp where > (select avg(sal) from emp)
from后面嵌套子查询
案例:找出每个部门平均薪水的薪水等级。
第一步:找出每个部门平均薪水,(赞找部门编号分组,求sal的平均值)
select
deptno, avg(sal) as avgsal
from
emp
group by deptno;
第二步:将以上的查询结果当做临时表t ,让t表和salgrade s表连接,条件是:t.avgsal between s.losal and s.hisal
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 后面嵌套子查询
案例:找出每个员工所在的部门名称,要显示员工名和部门名。
select e.ename,(select d.dname
from dept d where e.deptno = d.deptno) as dname
from
emp e;