多表查询_子查询概述和多表查询_子查询情况1&情况2&情况3
子查询
概念:查询中嵌套查询,称嵌套查询为子查询
-- 查询工资最高的员工信息
-- 1.查询最高的工资是多少 9000
select max(salary) from emp;
-- 查询员工信息,并且工资等于9000的
select * from emp where salary =9000;
-- 一条sql就完成这个操作 子查询
select * from emp where salary = (select max(salary) from emp);
子查询的不同情况
1.子查询的结果是单行单列的:
子查询可以作为条件,使用运算符去判断
-- 查询员工工资小于平均工资的人
select * from emp where 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 = "财务部");
3.子查询的结果是多行多列的:
查询员工入职日期是2011-11-11日之后的员工信息和部门信息
select * from dept,(select * from emp where emp.join_date > "2011-11-11") t2 where dept.id = t2.dept_id;