select语句当中嵌套select语句,被嵌套的select语句就是子查询。

子查询可以出现在哪里?

select 
				..(select)..
from
				..(select)..
where
				..(select)..

我们通过以下三张表 1、员工表 2、部门表 3、薪资表 来演示子查询的三种情况

mysql子查询语句(mysql查询所有语法)(1)

员工表

mysql子查询语句(mysql查询所有语法)(2)

部门表

mysql子查询语句(mysql查询所有语法)(3)

薪资等级表

1)查询薪资大于平均薪资的员工(where后面跟select)

select 
				e.ename , e.sal
from
				emp e
where
				e.sal > (select avg(sal) from emp );

mysql子查询语句(mysql查询所有语法)(4)

薪资大于平均薪资的员工信息

2、找出每个部门平均的薪资等级(from 后面跟select)

select
				d.dname , t.avgsal , s.grade
from 
				(select deptno , avg(sal) as avgsal from emp group by deptno) t
join
				dept d
on
				t.deptno = d.deptno
 join
 				salgrade s
 on 
 				t.avgsal between s.losal and s.hisal;

mysql子查询语句(mysql查询所有语法)(5)

每个部门的平均薪水等级

3、找出每个员工所在部门的名称(select 后面跟select)

select
				e.ename , (select d.dname from dept d where d.deptno = e.deptno)
from
				emp e;

mysql子查询语句(mysql查询所有语法)(6)

每个员工的部门名称