多表查询_子查询情况1&2和多表查询_子查询情况3
多表查询_子查询情况1&2:
第一种情况:子查询的结果是单行单列的:
子查询可以作为条件,使用运算符去判断
-- 查询员工工资小于平均工资的人
SELECT salary FROM emp WHERE salary < (SELECT AVG(salary) FROM emp);
输出结果:
第二种情况是:子查询的结果是多行单列的:
子查询可以作为条件,使用运算符in来判断
-- 查询"财务部"和"市场部"所有的员工信息
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;
运行结果: