数据库的多表查询(MYSQL)表表联立
根据以上三张表格,对三张表格进行不同的联立,查询并显示符合条件的内容。
1. 查出至少有一个员工的部门。显示部门编号、部门名称、部门位置、部门人数。
mysql> SELECT d.deptno AS 部门编号, d.dname as 部门名称, d.loc as 部门位置, COUNT(e.empno) as 部门人数 FROM dept d
JOIN employee e ON d.deptno = e.deptno
GROUP BY d.deptno, d.dname, d.loc;
+----------+----------+----------+----------+
| 部门编号 | 部门名称 | 部门位置 | 部门人数 |
+----------+----------+----------+----------+
| 10 | 教研部 | 北京 | 3 |
| 20 | 学工部 | 上海 | 5 |
| 30 | 销售部 | 广州 | 6 |
| 50 | 保洁部 | 武汉 | 1 |
+----------+----------+----------+----------+
4 rows in set
2. 列出所有员工的姓名及其直接上级的姓名。
mysql> SELECT e1.ename AS 员工姓名, e2.ename AS 上级姓名
FROM employee e1
LEFT JOIN employee e2 ON e1.mgr = e2.empno;
+----------+----------+
| 员工姓名 | 上级姓名 |
+----------+----------+
| 甘宁 | 庞统 |
| 黛琦丝 | 关羽 |
| 殷天正 | 关羽 |
| 刘备 | 曾阿牛 |
| 谢逊 | 关羽 |
| 关羽 | 曾阿牛 |
| 张飞 | 曾阿牛 |
| 诸葛亮 | 刘备 |
| 曾阿牛 | NULL |
| 韦一笑 | 关羽 |
| 周泰 | 诸葛亮 |
| 程普 | 关羽 |
| 庞统 | 刘备 |
| 黄盖 | 张飞 |
| 张三 | 甘宁 |
+----------+----------+
15 rows in set
3. 列出受雇日期早于直接上级的所有员工的编号、姓名、部门名称。
mysql> SELECT e1.empno as 员工编号, e1.ename as 员工姓名, d.dname as 部门名称
FROM employee e1
JOIN employee e2 ON e1.mgr = e2.empno
JOIN dept d ON e1.deptno = d.deptno
WHERE e1.hiredate < e2.hiredate;
+----------+----------+----------+
| 员工编号 | 员工姓名 | 部门名称 |
+----------+----------+----------+
| 1007 | 张飞 | 教研部 |
| 1001 | 甘宁 | 学工部 |
| 1004 | 刘备 | 学工部 |
| 1002 | 黛琦丝 | 销售部 |
| 1003 | 殷天正 | 销售部 |
| 1006 | 关羽 | 销售部 |
+----------+----------+----------+
6 rows in set
4. 列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门。
mysql> SELECT d.dname, e.empno, e.ename
FROM dept d
LEFT JOIN employee e ON d.deptno = e.deptno;
+--------+-------+--------+
| dname | empno | ename |
+--------+-------+--------+
| 教研部 | 1007 | 张飞 |
| 教研部 | 1009 | 曾阿牛 |
| 教研部 | 1014 | 黄盖 |
| 学工部 | 1001 | 甘宁 |
| 学工部 | 1004 | 刘备 |
| 学工部 | 1008 | 诸葛亮 |
| 学工部 | 1011 | 周泰 |
| 学工部 | 1013 | 庞统 |
| 销售部 | 1002 | 黛琦丝 |
| 销售部 | 1003 | 殷天正 |
| 销售部 | 1005 | 谢逊 |
| 销售部 | 1006 | 关羽 |
| 销售部 | 1010 | 韦一笑 |
| 销售部 | 1012 | 程普 |
| 财务部 | NULL | NULL |
| 保洁部 | 1015 | 张三 |
+--------+-------+--------+
16 rows in set
5. 列出最低薪金大于15000的各种工作及从事此工作的员工人数。
mysql> SELECT job, COUNT(*) AS 员工人数
FROM employee
WHERE job IN (SELECT DISTINCT job FROM employee WHERE sal > 15000)
GROUP BY job;
+--------+----------+
| job | 员工人数 |
+--------+----------+
| 销售员 | 4 |
| 经理 | 3 |
| 分析师 | 2 |
| 董事长 | 1 |
| 保洁员 | 1 |
+--------+----------+
5 rows in set
6. 列出在销售部工作的员工的姓名,假定不知道销售部的部门编号。
mysql> SELECT ename
FROM employee
WHERE deptno = (SELECT deptno FROM dept WHERE dname = '销售部');
+--------+
| ename |
+--------+
| 黛琦丝 |
| 殷天正 |
| 谢逊 |
| 关羽 |
| 韦一笑 |
| 程普 |
+--------+
6 rows in set
7. 列出薪金高于公司平均薪金的所有员工信息,所在部门名称,上级领导,工资等级。
mysql> SELECT e.ename, e.job, e.sal, e.mgr, e2.ename AS 上级领导,d.dname
FROM employee e
JOIN dept d ON e.deptno = d.deptno
JoIN employee e2 oN e.mgr = e2 .empno
JOIN (
SELECT AVG(sal) AS average_salary
FROM employee
) AS a ON e.sal > a.average_salary;
+--------+--------+-------+------+----------+--------+
| ename | job | sal | mgr | 上级领导 | dname |
+--------+--------+-------+------+----------+--------+
| 刘备 | 经理 | 29750 | 1009 | 曾阿牛 | 学工部 |
| 关羽 | 经理 | 28500 | 1009 | 曾阿牛 | 销售部 |
| 诸葛亮 | 分析师 | 30000 | 1004 | 刘备 | 学工部 |
| 庞统 | 分析师 | 30000 | 1004 | 刘备 | 学工部 |
| 张三 | 保洁员 | 80000 | 1001 | 甘宁 | 保洁部 |
+--------+--------+-------+------+----------+--------+
5 rows in set
8.列出与庞统从事相同工作的所有员工及部门名称。
mysql> SELECT e.ename, d.dname AS 部门名称
FROM employee e
JOIN dept d ON e.deptno = d.deptno
WHERE e.job = (SELECT job FROM employee
WHERE ename = '庞统');
+--------+----------+
| ename | 部门名称 |
+--------+----------+
| 诸葛亮 | 学工部 |
| 庞统 | 学工部 |
+--------+----------+
2 rows in set
9.列出薪金高于部门30工作的所有员工的薪金的员工姓名和薪金、部门名称。
mysql> SELECT e.ename, e.sal, d.dname
FROM employee e
JOIN dept d ON e.deptno = d.deptno
WHERE e.sal > (
SELECT MAX(sal)
FROM employee
WHERE deptno = 30
);
+--------+-------+--------+
| ename | sal | dname |
+--------+-------+--------+
| 刘备 | 29750 | 学工部 |
| 诸葛亮 | 30000 | 学工部 |
| 曾阿牛 | 50000 | 教研部 |
| 庞统 | 30000 | 学工部 |
| 张三 | 80000 | 保洁部 |
+--------+-------+--------+
5 rows in set
10.查出年份、利润、年度增长比。
mysql> SELECT year,zz,
(zz - LAG(zz, 1, 0) OVER (ORDER BY year)) / LAG(zz, 1, 0) OVER (ORDER BY year) AS 年度增长比
FROM lirun;
+------+------+------------+
| year | zz | 年度增长比 |
+------+------+------------+
| 2010 | 100 | NULL |
| 2011 | 150 | 0.5000 |
| 2012 | 250 | 0.6667 |
| 2013 | 800 | 2.2000 |
| 2014 | 1000 | 0.2500 |
+------+------+------------+
5 rows in set
源码在码云Gitee:
数据库的多表查询(MYSQL)表表联立 · zyt/麦当劳投资人 - Gitee.comhttps://gitee.com/zytscode/mcdonalds-investors/blob/master/%E6%95%B0%E6%8D%AE%E5%BA%93%E7%9A%84%E5%A4%9A%E8%A1%A8%E6%9F%A5%E8%AF%A2%EF%BC%88MYSQL%EF%BC%89%E8%A1%A8%E8%A1%A8%E8%81%94%E7%AB%8B
相关文章:

数据库的多表查询(MYSQL)表表联立
根据以上三张表格,对三张表格进行不同的联立,查询并显示符合条件的内容。 1. 查出至少有一个员工的部门。显示部门编号、部门名称、部门位置、部门人数。 mysql> SELECT d.deptno AS 部门编号, d.dname as 部门名称, d.loc as 部门位置, COUNT(e.emp…...
P8650 [蓝桥杯 2017 省 A] 正则问题(dfs )
多重括号,利用回溯来对上一层括号中的内容进行反馈 实现: 若为 x 长度加一 若为 ( 进入递归计算 (计算相当于子表达式) 若为 ) 结束当前递归 若为 | …...

【ESP32】手势识别实现笔记:红外温度阵列 | 双三次插值 | 神经网络 | TensorFlow | ESP-DL
目录 一、开发环境搭建与新建工程模板1.1、开发环境搭建与卸载1.2、新建工程目录1.3、自定义组件 二、驱动移植与应用开发2.1、I2C驱动移植与AMG8833应用开发2.2、SPI驱动移植与LCD应用开发2.3、绘制温度云图2.4、启用PSRAM(可选)2.5、画面动静和距离检测…...

No matching version found for @babel/compat-data@^7.23.5 处理
npm ERR! notarget No matching version found for babel/compat-data^7.23.5 处理 报错信息 npm WARN ERESOLVE overriding peer dependency npm ERR! code ETARGET npm ERR! notarget No matching version found for babel/compat-data^7.23.5. npm ERR! notarget In most …...

手持机|三防智能手机_4寸/5寸/6寸安卓系统三防手机PDA手持终端方案
随着科技的不断发展,三防手持机作为一种多功能设备,正逐渐在各行业得到广泛应用。这款手持机采用高性能处理器,支持高精度北斗定位和工业本安防爆功能,并具备IP67级防水防尘性能和1.5米防跌落能力。因此,它在仓储管理、…...

蓝桥杯算法心得——仙界诅咒(dfs)
大家好,我是晴天学长,搜索型的dfs,差点开二维矩阵了,仔细一想,没那么夸张啊,哈哈哈,需要的小伙伴可以关注支持一下哦!后续会继续更新的。💪💪💪 1…...

List集合,遍历,数据结构
一.List常见的方法: 二. List集合的遍历方式 除了 迭代器遍历 增强for遍历 Lambda表达式遍历,还有自己独有的普通for遍历,列表迭代器遍历 1.迭代器遍历 2.增强for遍历 3.Lambda表达式遍历 4.普通for遍历 5.列表迭代器遍历 列表迭代器相对于…...

2的幂运算
2的幂 描述 : 给你一个整数 n,请你判断该整数是否是 2 的幂次方。如果是,返回 true ;否则,返回 false 。 如果存在一个整数 x 使得 n 2x ,则认为 n 是 2 的幂次方。 题目 : LeetCode 231.2的幂 : 231. 2 的幂 分…...
优先队列经典例题leetcode思路代码详解
目录 leetcode215题.数组中的第k个最大元素 leetcode347题.前k个高频元素 leetcode295题.数据流的中位数 对优先队列感兴趣的朋友可以去看我上一篇文章。 优先队列基础讲解-CSDN博客 leetcode215题.数组中的第k个最大元素 215. 数组中的第K个最大元素 - 力扣(…...
新型Python环境与依赖管理工具——pipenv
文章目录 pipenv介绍pipenv安装pipenv使用创建虚拟环境删除虚拟环境安装依赖查看包之间的依赖图卸载依赖在虚拟环境中执行命令shell环境下通过requirements.txt安装依赖导出requirements.txt文件查看虚拟环境的路径 pipenv介绍 pipenv可以看做是pip和virtualenv的组合体&#…...

FastDFS+Nginx - 本地搭建文件服务器同时实现在外远程访问「内网穿透」
文章目录 前言1. 本地搭建FastDFS文件系统1.1 环境安装1.2 安装libfastcommon1.3 安装FastDFS1.4 配置Tracker1.5 配置Storage1.6 测试上传下载1.7 与Nginx整合1.8 安装Nginx1.9 配置Nginx 2. 局域网测试访问FastDFS3. 安装cpolar内网穿透4. 配置公网访问地址5. 固定公网地址5.…...
kendo-splitter动态分配分隔框大小
通过size方法,动态改变框大小,参考链接:https://docs.telerik.com/kendo-ui/api/javascript/ui/splitter/methods/size vue画面 <kendo-button type"primary" click"changePane">button</kendo-button><…...

网站提示不安全?
随着互联网的普及和发展,网络安全问题日益严重。黑客攻击、数据泄露、恶意软件等问题层出不穷,给企业和个人带来了巨大的损失。在这个背景下,确保网站安全显得尤为重要,而使用SSL证书是解决这些问题的有效措施。 什么是SSL证书&am…...
C# 泛型编译特性对性能的影响
C#作为一种强类型语言,具有丰富的泛型支持,允许开发者编写可以应对不同数据类型的通用代码。然而,在泛型编译时,针对结构和类作为泛型参数时,会对性能产生不同的影响。 泛型编译行为 在C#中,泛型编译行为取…...

11-30 JavaWeb
修改与删除操作 防止空指针异常 localhost:8080 -> 分页查询 修改流程:(先查后改(两个servlet)) 修改: 传用户id(用户id怎么得到 -> 循环一次得到一个user 对象 user对象里用user.getId()得到用户id) UpdateUserQueryServlet.java (…...

LCR 047. 二叉树剪枝 和 leetCode 1110. 删点成林 + 递归 + 图解
给定一个二叉树 根节点 root ,树的每个节点的值要么是 0,要么是 1。请剪除该二叉树中所有节点的值为 0 的子树。节点 node 的子树为 node 本身,以及所有 node 的后代。 示例 1: 输入: [1,null,0,0,1] 输出: [1,null,0,null,1] 解释: 只有红…...
Flutter笔记:路由观察者
Flutter系列 路由观察者 作者:李俊才 (jcLee95):https://blog.csdn.net/qq_28550263 邮箱 :291148484163.com 本文地址:https://blog.csdn.net/qq_28550263/article/details/134572181 目 录 1. 概述2. 路由…...

【驱动】串口驱动分析(三)-serial driver
简介 前两节我们介绍串口驱动的框架和tty core部分。这节我们介绍和硬件紧密相关的串口驱动部分。 UART驱动部分依赖于硬件平台,而TTY驱动和具体的平台无关。虽然UART部分依赖于平台,但是不管是哪个硬件平台,驱动的思路都是一致的ÿ…...
(C++20) constinit常量初始化
文章目录 由来constinit 常量初始化常量初始化 ! 初始化常量初始化声明静态存储对象非初始化声明thread_local END 由来 在C多文件编译中会出现一个常见的问题,叫做静态初始化顺序问题。Static Initialization Order Fiasco。 比如现在有两个文件,其中…...

python实现获取aws route53域名信息
最近由于工作原因接触到aws的服务,我需要实时获取所有的域名信息,用于对其进行扫描,因此写了一个自动化爬取脚本 给需要的人分享。 1.基础准备 代码环境:python3 第三方库:boto3 (安装方法pip install…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...

uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建
华为云FlexusDeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色,华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型,能助力我们轻松驾驭 DeepSeek-V3/R1,本文中将分享如何…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)
目录 一、👋🏻前言 二、😈sinx波动的基本原理 三、😈波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、🌊波动优化…...
Java编程之桥接模式
定义 桥接模式(Bridge Pattern)属于结构型设计模式,它的核心意图是将抽象部分与实现部分分离,使它们可以独立地变化。这种模式通过组合关系来替代继承关系,从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...

搭建DNS域名解析服务器(正向解析资源文件)
正向解析资源文件 1)准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2)服务端安装软件:bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...
「全栈技术解析」推客小程序系统开发:从架构设计到裂变增长的完整解决方案
在移动互联网营销竞争白热化的当下,推客小程序系统凭借其裂变传播、精准营销等特性,成为企业抢占市场的利器。本文将深度解析推客小程序系统开发的核心技术与实现路径,助力开发者打造具有市场竞争力的营销工具。 一、系统核心功能架构&…...

使用SSE解决获取状态不一致问题
使用SSE解决获取状态不一致问题 1. 问题描述2. SSE介绍2.1 SSE 的工作原理2.2 SSE 的事件格式规范2.3 SSE与其他技术对比2.4 SSE 的优缺点 3. 实战代码 1. 问题描述 目前做的一个功能是上传多个文件,这个上传文件是整体功能的一部分,文件在上传的过程中…...

【51单片机】4. 模块化编程与LCD1602Debug
1. 什么是模块化编程 传统编程会将所有函数放在main.c中,如果使用的模块多,一个文件内会有很多代码,不利于组织和管理 模块化编程则是将各个模块的代码放在不同的.c文件里,在.h文件里提供外部可调用函数声明,其他.c文…...

CTF show 数学不及格
拿到题目先查一下壳,看一下信息 发现是一个ELF文件,64位的 用IDA Pro 64 打开这个文件 然后点击F5进行伪代码转换 可以看到有五个if判断,第一个argc ! 5这个判断并没有起太大作用,主要是下面四个if判断 根据题目…...