数据库的多表查询(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.comicon-default.png?t=N7T8https://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

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

98.套接字-Socket网络编程1(基础概念)

目录 1.局域网和广域网 2.IP 互联网协议(Internet Protocol) IP的作用 3.查看IP地址 Windows上查看IP ​编辑 Linux上查看IP 4.端口 主要类型&#xff1a; 用途&#xff1a; 示例&#xff1a; 端口的表示&#xff1a; 5.OSI/ISO 网络分层模型 1.局域网和广域网 …

手持机|三防智能手机_4寸/5寸/6寸安卓系统三防手机PDA手持终端方案

随着科技的不断发展&#xff0c;三防手持机作为一种多功能设备&#xff0c;正逐渐在各行业得到广泛应用。这款手持机采用高性能处理器&#xff0c;支持高精度北斗定位和工业本安防爆功能&#xff0c;并具备IP67级防水防尘性能和1.5米防跌落能力。因此&#xff0c;它在仓储管理、…

Adobe系列的冷门成员~Firework

本贴博主给大家带来的是一款上了年纪、且比较冷门的Adobe全家桶成员——Firework&#xff0c;对于网页设计的从业者来说还是有一定的应用价值的&#xff0c;快来一起看看吧&#xff01; 一款网页作图软件&#xff0c;软件可以加速 Web 设计与开发&#xff0c; 是一款创建与优化…

QT QGraphicsItem 图元覆盖导致鼠标点击事件不能传递到被覆盖图元

一、概述 在日常开发中&#xff0c;遇到这样一个问题&#xff0c;线图元和引脚图元重叠&#xff0c;导致点击引脚图元&#xff0c;没有进入引脚图元的鼠标点击事件中。 二、产生原因 如果您的 QGraphicsItem 上有一个图元覆盖了它&#xff0c;可能会导致鼠标事件无法正常触发…

L1-005:考试座位号

题目描述 每个 PAT 考生在参加考试时都会被分配两个座位号&#xff0c;一个是试机座位&#xff0c;一个是考试座位。正常情况下&#xff0c;考生在入场时先得到试机座位号码&#xff0c;入座进入试机状态后&#xff0c;系统会显示该考生的考试座位号码&#xff0c;考试时考生需…

百度地图JavaScript API GL获取经纬度,标记,添加文本标注,点击事件,封装

百度地图JavaScript API GL常用方法封装 引入百度js库 <script type"text/javascript" src"https://api.map.baidu.com/api?v1.0&typewebgl&ak自己的百度应用ak"></script>封装方法 <template><div class"map"&…

Flink(八)【窗口】

前言 终于忙完了四门专业课的期末&#xff0c;确实挺累啊。今天开始继续学习 Flink &#xff0c;接着上次的内容。 今日摘录&#xff1a; 他觉得一个人奋斗更轻松自在。跟没有干劲的人在一起厮混&#xff0c;只会徒增压力。 -《解忧杂货店》 1、窗口 之前我们已经了解了…

Redis7--基础篇4(Redis事务)

Redis事务是什么 可以一次执行多个命令&#xff0c;本质是一组命令的集合&#xff0c;一个事务中的所有命令都会序列化&#xff0c;按顺序串行&#xff0c;而不会被其他命令插入。 其作用就是在一个队列中&#xff0c;一次性、顺序、排他的执行一系列命令。 Redis事务 VS 数据…

TZOJ 1387 人见人爱A+B

答案&#xff1a; #include <stdio.h> void time(int ah, int am, int as, int bh, int bm, int bs, int* sum_h, int* sum_m, int* sum_s) //不需要返回值所以定义void函数&#xff0c;前面6个为输入&#xff0c;然后用指针存给后面三个 {*sum_s (as bs) % 60; …

无人机助力电力设备螺母缺销智能检测识别,python基于YOLOv7开发构建电力设备螺母缺销高分辨率图像小目标检测系统

传统作业场景下电力设备的运维和维护都是人工来完成的&#xff0c;随着现代技术科技手段的不断发展&#xff0c;基于无人机航拍飞行的自动智能化电力设备问题检测成为了一种可行的手段&#xff0c;本文的核心内容就是基于YOLOv7来开发构建电力设备螺母缺销检测识别系统&#xf…

Linux 系统渗透提权-Server2204

B-3:Linux 系统渗透提权 任务环境说明: 服务器场景:Server2204(关闭链接) 用户名:hacker 密码:123456 1.使用渗透机对服务器信息收集,并将服务器中 SSH 服务端口号作为 flag 提 交; Flag:2283/tcp

Azure Machine Learning - 在 Azure 门户中创建演示应用

目录 准备环境启动向导配置搜索结果添加自动提示功能添加建议创建、下载和执行清理资源 使用 Azure 门户的“创建演示应用”向导来生成可下载的“localhost”样式的 Web 应用&#xff0c;该应用在浏览器中运行。 根据其配置&#xff0c;生成的应用在首次使用时就能正常运行&…