本章关键字:
ANY 于子查询返回的每一个值比较(小于子查询的任意一个结果)
继“五”学习笔记的2张表
#子查询
SELECT * FROM tb_emp
#查询工资比ALLEN高的员工
#平常写法
SELECT SAL FROM tb_emp WHERE ename = '艾伦'
SELECT * FROM tb_emp WHERE sal > 1600
#子查询写法
SELECT *
FROM tb_emp
WHERE sal > (
SELECT sal
FROM tb_emp
WHERE ename = '艾伦'
);
#查询和ALLEN同一个部分的员工
SELECT *
FROM tb_emp
WHERE deptno = (
SELECT deptno
FROM tb_emp
WHERE ename = '艾伦'
);
#查询月薪最高的员工名字
SELECT ename,sal
FROM tb_emp
WHERE sal = (
SELECT MAX(sal)
FROM tb_emp
);
#单行子查询返回多个结果 错误
SELECT *
FROM tb_emp
WHERE sal = (
SELECT MIN(sal)
FROM tb_emp
GROUP BY deptno
);
#子查询没有返回结果
SELECT *
FROM tb_emp
WHERE job = (
SELECT job
FROM tb_emp
WHERE ename = 'xb'
)
#in 与列表中的任一成员相等(等于子查询的任一一个结果)
SELECT *
FROM tb_emp
WHERE sal IN(
SELECT sal
FROM tb_emp
WHERE job = '市场销售'
)
#ANY 于子查询返回的每一个值比较(小于子查询的任意一个结果)
SELECT *
FROM tb_emp
WHERE sal < ANY(
SELECT sal
FROM tb_emp
WHERE job = '市场销售'
)
#查询出平均月薪最高的部门编号与名称
SELECT deptno,AVG(sal)
FROM tb_emp
GROUP BY deptno
ORDER BY AVG(sal) DESC
LIMIT 0,1