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;

相关推荐
..空空的人13 小时前
C++基于protobuf实现仿RabbitMQ消息队列---技术认识2
服务器·数据库·c++·网络协议·gtest·异步·protobuf
小妖同学学AI13 小时前
告别SQL编写!开源WrenAI实现自然语言与数据库的智能对话
数据库·sql·开源
DBA小马哥13 小时前
PB级数据迁移挑战:Oracle故障响应优化实战
数据库·oracle
Logic10113 小时前
《Mysql数据库应用》 第2版 郭文明 实验1 在MySQL中创建数据库和表核心操作与思路解析
数据库·sql·mysql·学习笔记·计算机网络技术·形考作业·国家开放大学
Haooog13 小时前
Redis面试题(不定时更新)
数据库·redis·缓存·面试
孙同学_13 小时前
【Linux篇】线程互斥、同步与线程池设计:原理与实践
数据库·redis·缓存
九转苍翎13 小时前
深入解析MySQL(8)——核心日志与备份恢复
mysql
running up13 小时前
JDBC-一套操作数据库的api
数据库
羑悻的小杀马特13 小时前
Docker高阶实战:从镜像构建优化策略实践到MySQL主从集群详解+一主二从容器化实现,一文打通生产级部署!
mysql·docker·容器·镜像实战
醉舞经阁半卷书113 小时前
从零到1了解etcd
数据库·etcd