mysql多表查询30个经典案例

news2025/1/12 1:55:37

mysql多表查询30个经典案例

  • 插入两张表一个dept
  • 一个emp
  • 插入dept表数据
  • 插入emp表数据
  • 1.列出每个部门里面有那些员工及部门名称;
  • 2.运维部门的收入总和;
  • 3.HR部入职员工的员工号
  • 4.财务部门收入超过5000元的员工姓名
  • 5.找出销售部收入最低的员工的入职时间;
  • 6.找出年龄小于平均年龄的员工的姓名,ID和部门名称
  • 7.列出每个部门收入总和高于10000的部门名称
  • 8.查出财务部门工资少于10000元的员工姓名
  • 9.求财务部门最低工资的员工姓名;
  • 10.找出运维部门中年纪最大的员工的姓名
  • 11.求收入最低的员工姓名及所属部门名称:
  • 12.求雷蕾的收入及部门名称
  • 13.求员工收入小于8000元的员工部门编号名字及其部门名称;
  • 14.列出每个部门中收入最高的员工姓名,部门名称,收入,并按照收入降序;
  • 15.求出运维部门收益最高的俩位员工的姓名,工号,收益
  • 16.查询运维部低于平均收入的员工号与员工姓名:
  • 17.列出部门员工数大于1个的部门名称;
  • 18.列出部门员工收入不超过10000,且大于5000的员工年纪及部门编号;
  • 19.求入职于2022年的员工所属部门名称;
  • 20.查找haiwu所在的部门名称;
  • 21.列出每一个部门中年纪最小的员工姓名,部门名称;
  • 22.列出每一个部门的员工总收入及部门名称;
  • 23.列出部门员工收入大于6000的员工号,部门名称;
  • 24.找出哪个部门还没有员工入职;
  • 25.先按部门号大小排序,再依据入职时间由早到晚排序员工信息表 ;
  • 26.找出运维部门收入大于7500,显示他们的ID和姓名和年纪;
  • 27.找出入职于2022年以前的员工,且显示他们的姓名和入职时间,按照先后循序进行排序展示
  • 28.找出入职于2022年1月以后的员工,并显示年龄,姓名,收入
  • 29.查找收入大于8000元以上的人的姓名和收入
  • 30.统计各个部门的收入总和并按照从大到小方式排序进行显示

插入两张表一个dept

create table `dept`(
`dept1` VARCHAR(10),
`dept_name` VARCHAR(20)
)

一个emp

create table `emp`(
	`id` varchar(10),
	`name` VARCHAR(25),
	`age` VARCHAR(10),
	`worktime` VARCHAR(10),
	`dept2` varchar(10),
	`incoming` int(10)

)

插入dept表数据

在这里插入图片描述

插入emp表数据

insert into emp (id,name,age,worktime,incoming,dept2) VALUES (1500,'wangyi',25,'2022/2/1',8900,101),(1501,'hufei',27,'2022/3/1',7500,102),(1502,'heisen',30,'2022/3/20',8900,102),(1503,'huahudie',25,'2022/8/9',9000,102),(1504,'baimu',25,'2022/01/01',4000,103),(1505,'leilei',27,'2016/05/09',27800,106),(1506,'liuxiaoyi',28,'2017/05/09',16000,105),(1507,'haiwu',27,'2018/09/06',6300,104)

1.列出每个部门里面有那些员工及部门名称;

SELECT name,dept_name from dept left JOIN emp on dept.dept1 = emp.dept2
在这里插入图片描述

2.运维部门的收入总和;

SELECT sum(incoming),dept_name from emp RIGHT JOIN dept ON emp.dept2 = dept.dept1 where dept_name=‘yunwei’在这里插入图片描述

3.HR部入职员工的员工号

SELECT dept_name,id from emp RIGHT JOIN dept on emp.dept2 = dept.dept1 WHERE dept_name = ‘HR’
在这里插入图片描述

4.财务部门收入超过5000元的员工姓名

select name from dept LEFT JOIN emp on emp.dept2=dept.dept1 where dept_name=‘chaiwu’ and incoming>5000
在这里插入图片描述

5.找出销售部收入最低的员工的入职时间;

select min(incoming),emp.worktime from dept RIGHT JOIN emp on dept.dept1 = emp.dept2 where dept_name=‘xiaoshou’ GROUP BY worktime
在这里插入图片描述

6.找出年龄小于平均年龄的员工的姓名,ID和部门名称

select name,id,dept_name from dept left JOIN emp on dept.dept1 = emp.dept2 WHERE age<(SELECT avg(age) from emp)在这里插入图片描述

7.列出每个部门收入总和高于10000的部门名称

SELECT dept_name from emp LEFT JOIN dept on emp.dept2 GROUP BY dept_name HAVING sum(incoming)>10000在这里插入图片描述

8.查出财务部门工资少于10000元的员工姓名

SELECT name from emp LEFT JOIN dept on emp.dept2 = dept.dept1 WHERE incoming < ‘10000’ && dept.dept_name=‘chaiwu’
在这里插入图片描述

9.求财务部门最低工资的员工姓名;

SELECT name,min(incoming) from emp LEFT JOIN dept on emp.dept2 = dept.dept1 where dept_name=‘chaiwu’ GROUP BY name
在这里插入图片描述

10.找出运维部门中年纪最大的员工的姓名

SELECT emp.name from emp LEFT JOIN dept on emp.dept2 = dept.dept1 where age=(SELECT max(age) from emp LEFT JOIN dept on emp.dept2 = dept.dept1 WHERE dept.dept_name =‘yunwei’) and dept.dept_name=‘yunwei’
在这里插入图片描述

11.求收入最低的员工姓名及所属部门名称:

SELECT emp.name,dept.dept_name from emp LEFT JOIN dept on emp.dept2 = dept.dept1 where incoming=(SELECT min(incoming)from emp join dept on emp.dept2 = dept.dept1)
在这里插入图片描述

12.求雷蕾的收入及部门名称

SELECT emp.incoming,dept.dept_name from emp LEFT JOIN dept on emp.dept2 = dept.dept1 where emp.name=‘leilei’
在这里插入图片描述

13.求员工收入小于8000元的员工部门编号名字及其部门名称;

SELECT emp.id,dept.dept_name,name from emp LEFT JOIN dept on emp.dept2 = dept.dept1 where emp.incoming<8000在这里插入图片描述

14.列出每个部门中收入最高的员工姓名,部门名称,收入,并按照收入降序;

SELECT any_value(name),max(incoming),any_value(dept_name) from dept LEFT JOIN emp on dept.dept1 = emp.dept2 GROUP BY dept_name
由于5.7mysql以上版本不对不需要group by进行去掉会报错,所以需要在不需要group by的名字前添加any_value(),()里面时你的字段
在这里插入图片描述

15.求出运维部门收益最高的俩位员工的姓名,工号,收益

select * from (select name,id,incoming from dept left join emp on dept.dept1=emp.dept2 where dept_name=‘yunwei’ order by incoming desc)as n where id limit 0,2;
在这里插入图片描述

16.查询运维部低于平均收入的员工号与员工姓名:

SELECT id,name from emp LEFT JOIN dept on emp.dept2 = dept.dept1 WHERE dept_name=‘yunwei’ and incoming<(
SELECT avg(incoming) from emp LEFT JOIN dept on dept.dept1 = emp.dept2)
在这里插入图片描述

17.列出部门员工数大于1个的部门名称;

SELECT DISTINCT(dept_name) from dept LEFT JOIN emp on dept.dept1=emp.dept2 where dept1 in(SELECT dept2 from dept LEFT JOIN emp on dept.dept1 = emp.dept2 GROUP BY dept2 HAVING(COUNT(dept2)>1))
在这里插入图片描述

18.列出部门员工收入不超过10000,且大于5000的员工年纪及部门编号;

SELECT age,id from dept LEFT JOIN emp on dept.dept1 = emp.dept2 where incoming<=7500 and incoming>=3000
在这里插入图片描述

19.求入职于2022年的员工所属部门名称;

SELECT DISTINCT(dept_name) from emp LEFT JOIN dept on emp.dept2 = dept.dept1 WHERE worktime=2022
在这里插入图片描述

20.查找haiwu所在的部门名称;

SELECT dept_name from emp LEFT JOIN dept on emp.dept2 = dept.dept1 WHERE name=‘haiwu’在这里插入图片描述

21.列出每一个部门中年纪最小的员工姓名,部门名称;

SELECT name,dept_name from dept LEFT JOIN emp on dept.dept1 = emp.dept2 where age in(SELECT min(age) from dept LEFT JOIN emp on dept.dept1 = emp.dept2 GROUP BY dept_name)
在这里插入图片描述

22.列出每一个部门的员工总收入及部门名称;

SELECT sum(incoming),any_value(dept_name) from dept LEFT JOIN emp ON dept.dept1 = emp.dept2 GROUP BY dept1在这里插入图片描述

23.列出部门员工收入大于6000的员工号,部门名称;

SELECT id,dept_name from dept LEFT JOIN emp on dept.dept1=emp.dept2 where incoming >6000
在这里插入图片描述

24.找出哪个部门还没有员工入职;

SELECT any_value(dept_name) from dept LEFT JOIN emp on dept.dept1=emp.dept2 GROUP BY dept1 HAVING (COUNT(id)=0)
在这里插入图片描述

25.先按部门号大小排序,再依据入职时间由早到晚排序员工信息表 ;

SELECT * FROM dept LEFT JOIN emp on dept.dept1=emp.dept2 ORDER BY dept1 desc,worktime DESC
在这里插入图片描述

26.找出运维部门收入大于7500,显示他们的ID和姓名和年纪;

SELECT id,name,age from dept LEFT JOIN emp on dept.dept1=emp.dept2 where dept_name=‘yunwei’ and incoming>=7500在这里插入图片描述

27.找出入职于2022年以前的员工,且显示他们的姓名和入职时间,按照先后循序进行排序展示

SELECT name,worktime from emp LEFT JOIN dept on emp.dept2 = dept.dept1 WHERE worktime>=2022 ORDER BY worktime
在这里插入图片描述

28.找出入职于2022年1月以后的员工,并显示年龄,姓名,收入

SELECT name,age,incoming from emp LEFT JOIN dept on emp.dept2 = dept.dept1 where worktime>=2022/01/01
在这里插入图片描述

29.查找收入大于8000元以上的人的姓名和收入

SELECT name,incoming FROM emp where incoming>4000
在这里插入图片描述

30.统计各个部门的收入总和并按照从大到小方式排序进行显示

SELECT sum(incoming),any_value(dept_name) from emp LEFT JOIN dept on emp.dept2 = dept.dept1 GROUP BY dept_name ORDER BY any_value(incoming) desc
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/146030.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

5G NR标准: 第20章 5G的演进

第20章 5G的演进 NR 的第一个版本&#xff0c;第 15 版&#xff0c;侧重于对 eMBB 的基本支持&#xff0c;在某种程度上&#xff0c;URLLC.1 如前几章所述&#xff0c;第 15 版是为即将发布的 NR 未来发展构建的基础 . NR 演进将带来额外的功能并进一步提升性能。 附加功能不…

Netty原理示图

1. AWT事件驱动 2. Websocket协议 3. 基于多个反应器的多线程模式 4. Netty Reactor 工作架构图 5. Bootstrap引导过程 Channel Channel是Java NIO的基础。它表示一个开放的连接&#xff0c;进行IO操作。基本的 I/O 操作&#xff08; bind() 、 connect() 、 read() 和 write(…

什么是异常?异常可以看作你敲出来的bug

异常异常的体系抛异常try -catchfinally自定义异常作为初学者&#xff0c;在刚开始写代码的时候&#xff0c;差不多写一行代码都要见一行红吧异常的体系 这里我们首先需要知道的一点是&#xff0c;所有的异常其实都是类。我们所有的异常都是继承于Throwable这个大类的&#xff…

喜讯!神策分析 Android SDK 入选数据安全“星熠”案例

随着《数据安全法》和《个人信息保护法》的相继出台实施&#xff0c;标志着数据安全保护法治时代的真正到来&#xff0c;国家对数据安全的重视达到了前所未有的高度。在此背景下&#xff0c;神策数据全面落地数据开发利用和数据安全领域的技术推广与产业创新&#xff0c;神策分…

有哪些视频素材网站值得推荐?

高质量视频素材网站&#xff0c;免费、可商用&#xff0c;建议收藏&#xff01; 1、菜鸟图库 https://www.sucai999.com/video.html?vNTYwNDUx 网站有超多视频素材&#xff0c;全部都是高清无水印&#xff0c;各种类型都有&#xff0c;像自然、城市、动物、科技、商业等等都…

【算法】哈希表

&#x1f600;大家好&#xff0c;我是白晨&#xff0c;一个不是很能熬夜&#x1f62b;&#xff0c;但是也想日更的人✈。如果喜欢这篇文章&#xff0c;点个赞&#x1f44d;&#xff0c;关注一下&#x1f440;白晨吧&#xff01;你的支持就是我最大的动力&#xff01;&#x1f4…

Unity3D打包Assetbundle丢失Shader问题

详情见&#xff1a;https://www.pianshen.com/article/5391338163/1、Unity3D在打包Assetbundle时&#xff0c;可能会遇到Shader丢失的问题&#xff0c;解决方法&#xff1a;打开Edit->Project Settings->Graphics&#xff0c;在Always Included Shaders列表添加上所需的…

微信小程序测试(简单项目测试)

Flex布局简介 布局的传统解决方案&#xff0c;基于盒状模型&#xff0c;依赖 display属性 position属性 float属性 什么是flex布局&#xff1f; Flex是Flexible Box的缩写&#xff0c;意为”弹性布局”&#xff0c;用来为盒状模型提供最大的灵活性。 任何一个容器都可以指…

小程序 - 起步:小程序的构成、宿主环境、协同工作和发布

小程序 - 起步:小程序的构成、宿主环境、协同工作和发布 Date: January 5, 2023 Sum: 小程序的构成、宿主环境、协同工作和发布 小程序简介 小程序与普通网页开发的区别 1. 运行环境不同 网页运行在浏览器环境中 小程序运行在微信环境中 2. API 不同 由于运行环境的不同…

P1308 [NOIP2011 普及组] 统计单词数————C++

题目 [NOIP2011 普及组] 统计单词数 题目描述 一般的文本编辑器都有查找单词的功能&#xff0c;该功能可以快速定位特定单词在文章中的位置&#xff0c;有的还能统计出特定单词在文章中出现的次数。 现在&#xff0c;请你编程实现这一功能&#xff0c;具体要求是&#xff1…

数字验证学习笔记——SystemVerilog芯片验证21 ——覆盖率类型

一、覆盖率类型 覆盖率是衡量设计验证完备性的一个通用词语。随着测试逐步覆盖各种合理的组合&#xff0c;仿真过程过程会慢慢勾画你的设计情况。覆盖率工具会在仿真过程中收集信息&#xff0c;然后进行后续处理并且得到覆盖率报告。通过这个报告找出覆盖之外的盲区&#xff0…

冒泡排序模拟qsort函数

欢迎来到 Claffic 的博客 &#x1f49e;&#x1f49e;&#x1f49e; 前言&#xff1a; 学习C语言&#xff0c;一般情况下都会接触到冒泡排序&#xff0c;你知道吗&#xff0c;用冒泡排序的思想可以模拟实现qsort函数&#xff08;库函数的一种&#xff0c;可以实现快排&#xff…

图解面试题:经典50题!掌握这些题,面试也太简单了!

已知有如下4张表&#xff1a;学生表&#xff1a;student(学号,学生姓名,出生年月,性别)成绩表&#xff1a;score(学号,课程号,成绩)课程表&#xff1a;course(课程号,课程名称,教师号)教师表&#xff1a;teacher(教师号,教师姓名)1.汇总分析-查询学生的总成绩并进行排名/* 【知…

CSS基础知识(盒子模型)

继承上一篇CSS的三大特性的优先级继续讲解。 1.1优先级 优先级注意点&#xff1a; 权重是有4组数字组成的&#xff0c;但是不会有进位。可以理解为类选择器永远大于元素选择器&#xff0c;id选择器永远大于类选择器以此类推。等级判断从左向右&#xff0c;如果某一位数值相同…

前端学习之CSS基础

前言 html标签就不说了&#xff0c;这次学习CSS样式&#xff0c;就是美化html标签。 快速了解什么是css 普通标签&#xff1a; 加了css样式&#xff1a; <img src"https://static.runoob.com/images/icon/mobile-icon.png" style"height:100px" /&…

No module named ‘pycocotools’

网上搜了之后 按照网上的去做 全都无果 开始自己探索 原本我pycharm里选的环境是 python3.8 (pytorch)winR输入cmd进去后 输入 python –V返回的是本地python版本2.7 所以我当前系统python版本和我pycharm里选的不一样 然而pycocotools这个包本质上应该是安装在我pycharm里…

Referer;盗链;防盗链的工作原理

目录 Referrer-policy 如何设置referer 盗链 防盗链的工作原理 绕过图片防盗链 设置meta 设置referrerpolicy"no-referrer" 客户端在请求时修改header头部 利用https网站盗链http资源网站&#xff0c;refer不会发送 常见防盗链方法 利用nginx 服务器端判…

python基础语法一

一、变量 1.1、变量定义 变量就是可变的量&#xff0c;对于一些有可能会经常变化的数据&#xff0c;我们需要使用一个符号&#xff0c;这样才能计算中使 用它&#xff0c;就像我们在小学时学过的一元方程中的"x"一样。比如说&#xff0c;我们在控制台内输入&#xf…

Java 集合List接口介绍和使用

List接口的基本介绍 1.List接口是Collection的子接口 2.List中的元素都是有序的除了LinkedList。 一些实用的方法 1.add()添加元素 2.get()得到指定位置的元素 3.addAll&#xff08;&#xff09;追加一个List 4.indexOf&#xff08;&#xff09;返回元素的位置 5.remove…

人工智能 -多任务编程、进程、线程介绍

目录1&#xff0c; 多任务的概念2&#xff0c;进程2.1进程的介绍2.2多进程完成多任务2.3进程执行带有参数的任务2.4获取进程编号2.5进程间不共享全局变量2.6主进程和子进程的结束顺序3、线程3.1多线程完成多任务3.2线程执行带有参数的任务3.3主线程和子线程的结束顺序3.4线程中…