1.什么是子查询?
select语句中嵌套select语句被嵌套的select语句称为子查询
2.子查询都可以出现在哪里?
select..(select)..from..(select)..where..(select)..
(1)where子句中的子查询
案例:找出比最低工资高的员工名称和工资?
select ename,sal from emp where (select min(sal) from emp);
(2)from子句中的子查询
注意:from后面的子查询,可以将子查询的查询结果当作一张临时表
案例:找出每个岗位的平均工资的薪资等级?
select t.*,s.grade from (select job,avg(sal) as avgsal from emp group by job) join t salgrade s on t.avgsal between s.losal and s.hisal;
(3)select语句后面出现的子查询
案例:找出每个员工的部门名称,要求显示员工名、部门名?
select e.ename,(select d.dname from dept d where e.deptno = d.deptno) as dname from emp e;
注意:对于select后面的子查询来说,这个子查询只能返回1条结果,多余1条就会报错
重要!!!公式:limit (pageNo - 1)* pageSize,pageSize
语法总结:
执行顺序: 1.from 2.where 3.group by 4.having 5.select 6.order by 7. limit