- 什么是子查询
- select语句中嵌套select语句,被嵌套的select语句称为子查询
- 子查询都可以出现在哪里?
select ..(select). from ..(select). where ..(select). - where子句中的子查询
- 案例:找出比最低工资高的员工姓名和工资?
- 实现思路:
- 第一步:查询最低工资是多少?
select min(sal) from emp; - 第二步:找出大于800的
select ename,sal from emp where sal > 800; - 第三步:合并
select ename,sal from emp where sal > (select min(sal) from emp);
- 第一步:查询最低工资是多少?
- from子句中的子查询
注意:from后面的子查询,可以将子查询的查询结果当做一张临时表。(技巧)- 案例:找出每个岗位的平均工资的薪资等级
- 第一步:查询每个岗位的平均工资(按照岗位分组求平均值)
select job,avg(sal) from emp group by job; - 第二步:把以上的查询结果就当做一张真实存在的表 t,将t表和s表进行表连接
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;
- 第一步:查询每个岗位的平均工资(按照岗位分组求平均值)
- 案例:找出每个岗位的平均工资的薪资等级
- select后面出现的子查询(了解!)