1、什么是子查询?
select语句中嵌套select语句,被嵌套的select语句称为子查询。
2、子查询都可以出现在哪里呢?
select
.. (select)..
from
..(select)..
where
.. (select) ..
3、where子句中的子查询
案例:找出比最低工资高的员工姓名和工资?
select ename,sal from emp where sal > (select min(sal ) from emp) ;
4、from子句中的子查询
可以将子查询的查询结果当做一张临时表。(技巧)
案例:找出每个岗位的平均工资的薪资等级。
t表和s表进行表连接,条件:t表avg(sal)between s.losal and s.hisal;
select
t.*, s.grade
from
(select job,avg(sal) as avgsal from emp group by job) t
join
salgrade s
on
t.avgsal between s.losal and s.hisal;
5、select后面出现的子查询
案例:找出每个员工的部门名称,要求显示员工名,部门名?
select
e.ename, (select d.dname from dept d where e.deptno = d.deptno) as dname
from
emp e;
注意:对于select后面的子查询来说,|这个子查询只能一次返回1条结果,多于1条,就报错了。!