子查询不同情况

    子查询的结果是单行单列的:

    子查询可以作为条件,使用运算符去判断。运算符.。>  >= < <= =

    

-- 查询员工工资小于平均工资的人
SELECT *  FROM emp where emp.salary < (SELECT AVG(salary) FROM emp);

 

 

    子查询的结果是多行单列的:

-- 查询'财务部'和市场部所有员工信息
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 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';

 

 

posted on 2022-07-25 14:54  淤泥不染  阅读(23)  评论(0编辑  收藏  举报