子查询一般出现在from和where子句中
1:子查询在主查询前执行一次
2:主查询使用子查询的结果
3:子查询要用括号括起来
单行子查询
例子
// 查询大于公司平均工资的员工姓名
select * from emp where sal > (select avg(sal) from emp)
多行单列子查询 (多个值好比是个集合)
in:与列表中的任意一个值相等
例子
// 查询工资等于部门经理的员工信息
select * from emp where sal in(select sal from emp where job = 'manager')
多列子查询
例子
// 查询出每个部门的编号, 名称, 部门人数, 平均工资
select d.deptno, d.dname,count(e.empno),ifnull(avg(e.sal),0)
from dept d left join emp e on d.deptno = e.deptno
group by d.deptno, d.dname