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;

相关推荐
西贝爱学习8 分钟前
数据库系统概论的第六版与第五版的区别
数据库·oracle
emma羊羊2 小时前
【SQL注入】延时盲注
数据库·sql·网络安全
一叶飘零_sweeeet2 小时前
从 MySQL 到 TiDB:分布式数据库的无缝迁移与实战指南
数据库·mysql·tidb
axban3 小时前
QT M/V架构开发实战:QStandardItemModel介绍
开发语言·数据库·qt
没学上了3 小时前
数据库建立库-Qt
数据库
程序员小羊!3 小时前
大数据电商流量分析项目实战:Spark SQL 基础(四)
大数据·sql·spark
我是zxb3 小时前
EasyExcel:快速读写Excel的工具类
数据库·oracle·excel
代码不停3 小时前
MySQL联合查询
java·数据库·mysql
沐浴露z4 小时前
Redis内存回收:过期策略与淘汰策略
数据库·redis·缓存
宴之敖者、4 小时前
MySQL——数据库基础
数据库·mysql