语法:SELECT 列名 FROM 表名 WHERE 条件 (子查询结果)
# 查询工资大于bruce的员工信息SELECT * FROM t_employees WHERE salary > (SELECT salary FROM t_employees WHERE first_name='bruce');# 有括号先算括号里的# 查询first_name为KING的员工所在部门的员工信息SELECT * FROM t_employees WHERE department_id IN (SELECT department_id FROM t_employees WHERE first_name='KING');# 查询工资高于第60号部门工资的员工信息(高于所有)SELECT * FROM t_employees WHERE salary > ALL(SELECT salary FROM t_employees WHERE department_id=60);# 查询工资高于第60号部门工资的员工信息(高于部分)SELECT * FROM t_employees WHERE salary > ANY(SELECT salary FROM t_employees WHERE department_id=60);
语法:SELECT 列名 FROM (子查询结果) WHERE 条件
# 一个不太好的例子
# 查询工资排前5名的员工的信息
# 先获取员工薪资降序排列的表,
# 再查询前5名
SELECT employee_id, first_name, salary FROM (SELECT employee_id, first_name, salary FROM t_employees ORDER BY salary DESC) as temp LIMIT 0, 5;
