多表查询-子查询概述,子查询情况1,子查询情况2,子查询情况3
多表查询-子查询概述
概念:查询中嵌套查询,称嵌套查询为子查询
-- 查询工资最高的员工信息 -- 1.查询最高的工资是多少 SELECT MAX(salary) FROM emp -- 2.查询员工信息,并且工资等于9000 SELECT * from emp where emp.salary = 9000 -- 用一条sql语句完成上面两条语句 SELECT * FROM emp where emp.salary = (SELECT MAX(salary) FROM emp)
子查询的不同情况:
子查询情况1:
子查询的结果是单行单列的
子查询可以作为条件,使用运算符去判断,运算符:> < >= <= =
-- 查询员工工资小于平均工资的人
SELECT AVG(salary) FROM emp
SELECT * FROM emp where emp.salary < (SELECT AVG(salary) FROM emp)
子查询情况2:
子查询的结果是多行单列的
子查询可以作为条件,使用运算符in来判断
-- 查询'财务部'和'市场部'所有 的员工信息 SELECT id FROM dept where name = '财务部' or name = '市场部' SELECT * from emp where dept_id = 3 or dept_id = 2 SELECT * FROM emp where dept_id in (SELECT id FROM dept where name = '财务部' or name = '市场部') SELECT * FROM emp where dept_id in (3,2)
子查询情况3
子查询结果是多行多列的
-- 查询员工入职日期是2011-11-11日之后的员工信息和部门信息 -- 子查询 SELECT * FROM dept t1,(SELECT * FROM emp where emp.join_date > 2011-11-11) t2 where t1.id = t2.dept_id -- 普通内连接 SELECT * FROM emp t1,dept t2 where t1.dept_id = t2.id and t1.join_date > '2011-11-11'

浙公网安备 33010602011771号