多表查询中子查询的概述和子查询的不同情况
多表查询中子查询的概述
概念:查询中嵌套查询,被嵌套查询为子查询
-- 查询工资最高的员工信息 -- 查询最高的工资是多少 9000 SELECT MAX(salary) FROM emp1; -- 查询员工信息,并且工资等于9000的 SELECT * FROM emp1 WHERE salary = 9000; -- 一条sql就完成这个操作 SELECT * FROM emp1 WHERE salary = (SELECT MAX(salary) FROM emp1);
多表查询中子查询的不同情况
1、子查询的结果是单行单列
子查询可以作为条件,使用运算符去判断
-- 查询员工工资小于平均工资的人 SELECT * FROM emp1 WHERE salary < (SELECT AVG(salary) FROM emp1);
2、子查询的结果是多行单列
子查询可以作为条件,使用运算符in来判断
-- 查询财务部和市场部所有的员工信息 SELECT id FROM dept WHERE `NAME` = '财务部' OR `NAME` = '市场部'; SELECT * FROM emp1 WHERE dept_id = 3 OR dept_id = 2; -- 子查询 SELECT * FROM emp1 WHERE dept_id IN (SELECT id FROM dept WHERE `NAME` = '财务部' OR `NAME` = '市场部');
3、子查询的结果是多行多列
子查询可以作为一张虚拟表
-- 查询员工入职信息是2011-11-11日之后的员工信息和部门信息 SELECT * FROM dept t1,(SELECT * FROM emp1 WHERE emp1.join_date > '2011-11-11') t2 WHERE t1.id = t2.dept_id; -- 普通内连接查询 SELECT * FROM emp1 t1,dept t2 WHERE t1.dept_id = t2.id AND t1.join_date > '2011-11-11';
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix