Mysql——子查询

子查询

Where子查询 单行单列 多行单列

Form子查询 多行多列

查询比SMITH工资高的人

select * from emp where sal > (select sal from emp where ename = 'SMITH');

查询比平均工资高的人

select * from emp where sal > (select avg(sal) from emp);

查询和经理工资相同的员工信息

select * from emp where sal in (select sal from emp where job = 'MANAGER');

查询部门编号,部门位置,部门人数,部门平均工资

第一步:查询每个部门的编号,名称,位置

Dept d

第二步:统计部门人数,平均工资

emp e

e.deptno deptno, count(e.empno) num,avg(e.sal) sal

Group by e.deptno

select e.deptno deptno, count(e.empno) num,avg(e.sal) sal from emp e Group by e.deptno;

将查到的数据和dept组合

select temp.deptno,temp.num,temp.sal,d.dname,d.loc from (select e.deptno deptno, count(e.empno) num,avg(e.sal) sal from emp e Group by e.deptno) temp,dept d where temp.deptno = d.deptno;

通过右连接处理边界数据

select d.deptno,IFNULL(temp.num,0) 部门人数 ,IFNULL(temp.sal,0) 平均工资 ,d.dname,d.loc from (select e.deptno deptno, count(e.empno) num,avg(e.sal) sal from emp e Group by e.deptno) temp right join dept d on temp.deptno = d.deptno;

相关推荐
九皇叔叔4 分钟前
深度拆解MySQL InnoDB存储引擎架构:从内存到磁盘的全链路解析
mysql·innodb·存储引擎
Sunia11 分钟前
《Spring AI + 大模型全栈实战》学习手册系列 · 专题二:《Milvus 向量数据库:从零开始搭建 RAG 系统的核心组件》
数据库
絆人心19 分钟前
最新 SQL 常用语句大全(新手入门 + 老手速查,含 DQL/DML/DDL)
数据库·sql·oracle
keyborad pianist36 分钟前
一篇文章学会Redis
数据库·redis·缓存
星辰_mya36 分钟前
SQL 性能调优:EXPLAIN 详解与慢查询优化案例
数据库·sql·面试·架构师
xixingzhe236 分钟前
spring boot druid 10秒超时问题
java·数据库·spring boot
IndulgeCui38 分钟前
Kingbase 身份认证与权限控制实践—数据库安全的第一道防线
数据库
AAA_搬砖达人小郝39 分钟前
SQL 高级查询技巧:WITH + UNION ALL + EXISTS + WHERE TRUE/FALSE 联合实战
数据库·sql
Yushan Bai39 分钟前
RAC环境数据库节点异常重启问题的分析(存储光纤信号问题)
数据库
WINDHILL_风丘科技41 分钟前
FlexPro高级应用之模板定制
数据库·汽车·汽车测试·flexpro