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 小时前
Java面试85题图解版 · 特别篇:2026后端高频面试题复盘(算法底层逻辑+高并发架构设计全解析,附Java实战代码)
java·网络·数据库·算法·面试
AOwhisky4 小时前
Redis 学习笔记(第三期):持久化与主从复制
运维·数据库·redis·笔记·学习·云计算
李白的天不白4 小时前
数据库连接报错问题
数据库
一条泥憨鱼4 小时前
【Redis】数据类型和常用命令
java·数据库·redis·后端·缓存
爱喝水的鱼丶5 小时前
SAP-ABAP:SAP视图开发入门:四类标准视图的适用场景与创建步骤详解
服务器·数据库·性能优化·sap·abap
大白要努力!5 小时前
MySQL 8.0 + Navicat 完整操作指南
数据库·mysql
云絮.6 小时前
数据库操作
数据库·mysql·算法·oracle
小小工匠6 小时前
Redis 缓存替换策略:8 种淘汰策略与 LRU 实现剖析
数据库·redis·缓存
设计师小聂!8 小时前
宝塔 Linux 面板保姆级教程
linux·mysql·开源·运维开发