子查询不同情况
1.子查询的结果是单行单列的:
子查询可以作为条件,使用运算符去判断。运算符∶> >= < <= =
-- 查询员工工资小于平均工资的人 SELECT * FROM emp WHERE emp.salary < (SELECT AVG(salary) FROM emp);
2.子查询的结果是多行单列的:
子查询可以作为条件,使用运算符in来判断
-- 查询"财务部"和'巿场部'所有的员工信息 SELECT id FROM dept WHERE NAME =‘财务部’OR NAME = '巿场部';S
ELECT * FROM emp WHERE dept_id = 3 OR dept_id = 2; --子查询 SELECT * FROW emp MHERE dept_id IN (SELECT id FROM dept MHERE NANE =‘财务部’OR NAWE = '市场部');
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';
标签:11,多表,查询,dept,emp,情况,id,SELECT From: https://www.cnblogs.com/shenziyi/p/16825437.html