多表查询-子查询的情况

子查询不同情况

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';

 

posted @   想见玺1面  阅读(37)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示