【MySQL】P8 多表查询(2) - 连接查询 联合查询
创始人
2024-05-30 18:52:14
0

连接查询以及联合查询

  • 多表查询概述
  • 连接查询
    • 内连接
      • 隐式内连接
      • 显式内连接
    • 外连接
      • 左外连接
      • 右外连接
      • 自连接
  • 联合查询


多表查询概述

建表语句见上一篇博文:https://blog.csdn.net/weixin_43098506/article/details/129402302

e.g.e.g.e.g.

select * from emp, dept where emp.dept_id = dept.id;

在这里插入图片描述

多表查询分为 连接查询子查询,连接查询分为 内连接外连接 以及 自连接


连接查询

内连接

内连接查询返回的是两张表之间交集的数据,也就是下图中蓝色部分;在这里插入图片描述

隐式内连接

建表语句见上一篇博文:https://blog.csdn.net/weixin_43098506/article/details/129402302

# 查询每一个员工所属的部门情况:
select emp.name, dept.name from emp, dept where emp.dept_id=dept.id;
# 简化
select e.name, d.name from emp e, dept d where e.dept_id=d.id;

相关缩写简化,见博文:https://blog.csdn.net/weixin_43098506/article/details/129365556

显式内连接

# 查询每一个员工所属的部门情况:
select e.name,d.name from emp e inner join dept d on e.dept_id = d.id;
# 注意 inner 可以省略;

外连接

左外连接是下图中 粉色+蓝色 部分
右外连接是下图中 紫色+蓝色 部分。

在这里插入图片描述

左外连接

# 查询 emp 表所有数据,和对应的部门信息(左外连接)
select e.*, d.name from emp e left outer join dept d on d.id = e.dept_id;
# 注意 outer 可以省略;

右外连接

# 查询 dept 表所有数据,和对应的员工信息(右外连接)
select d.*, e.* from emp e right outer join dept d on d.id = e.dept_id;
# 注意 outer 可以省略;

自连接

自连接查询可以是内连接,同样可以是外连接。

# 查询员工以及所属领导名字
select a.name,b.name from emp a, emp b where a.managerid = b.id;
# 查询所有员工 emp 以及其领导名字 emp,如果员工没有领导,也需要查询出来;
select a.name,b.name from emp a left join emp b on a.managerid=b.id;

联合查询

把多次查询结果联合起来,形成一个新的查询结果集;

select 字段列表 from 表A ...
UNION [all]
select 字段列表 from 表B ...;

union all 直接将查询的结果合并,所以可能回存在重复:

# 将薪资低于5000的员工和年龄大于50的员工全部查询出来
select * from emp where salary < 5000
union all
select * from emp where age > 50;

union 将查询的结果合并后去重:

# 将薪资低于5000的员工和年龄大于50的员工全部查询出来
select * from emp where salary < 5000
union
select * from emp where age > 50;

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...