【MySQL】外连接查询

news2025/1/11 16:47:26

如果我们使用内连接来查询数据:

使用inner join - on子句:显示的是所有匹配的信息

select * 
from emp e
inner join dept d
on e.deptno = d.deptno;

在这里插入图片描述

inner join - on子句缺点:

  1. 部门编号为40的,没有显示员工信息,将不会在查询中显示
  2. 某员工没有部门编号信息,将不会显示在查询中

所以,使用内连接来查询的话,有时候显示的数据是不全的。如果我们希望两张表中没有匹配的信息也显示出来,可以使用外连接查询。

外连接包括:

  • 左外连接left outer join
  • 右外连接right outer join

PS:在使用的过程中,outer可以省略不写。

使用左外连接,左边那个表的信息,即使不匹配也可以显示出数据;
使用右外连接,右边那个表的信息,即使不匹配也可以显示出数据。

全外连接full outer join

这个语法会展示左右表全部不匹配的数据,但是在mysql中不支持,在oracle中支持。

select *
from emp e
full outer join dept d
on e.deptno = d.deptno;

返回1064语法错误:

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘full outer join dept d
on e.deptno = d.deptno’ at line 3

但是可以使用语法union实现这个逻辑,关键字union表示取左右外连接查询的并集。

1.用union取并集,会自动去重,因此效率

select *
from emp e
left outer join dept d
on e.deptno = d.deptno
union -- 并集-去重-效率低
select * 
from emp e
right outer join dept d
on e.deptno = d.deptno;

2.用union all取并集,不去重,因此效率

select *
from emp e
left outer join dept d
on e.deptno = d.deptno
union all -- 并集-不去重-效率高
select * 
from emp e
right outer join dept d
on e.deptno = d.deptno;

mysql对集合操作支持较弱,只支持并集操作,交集和差集操作是不支持的(oracle中是支持的)。

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

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

相关文章

【代码随想录】刷题Day14

递归实现的一些理解 1.如果是链表的遍历其实不需要怎么思考;无非就是先定参数然后考虑是先操作后遍历还是先走到底再操作。 包括我之前在写链表的节点删除其实核心思路就是由于链表前面删除后面找不到的原理,以至于我们需要走到链表的底部再进行操作。 2…

【Android入门到项目实战-- 8.3】—— 如何解析XML格式数据

目录 一、准备工作 EasyWebServer 二、Pull解析方式 三、SAX解析方式 我们可以向服务器提交数据,也可以获取数据,但是数据交换的不仅仅是内容,还要对数据的属性、作用进行描述,当另一方收到数据消息后可以按照相同的结构规格进…

Android开发的《大众设计App》项目介绍

该《大众设计App》的功能介绍如下: 1、登录&注册功能 登录、注册页面效果如下所示: 2、用户信息修改功能 (各个修改功能均已实现,因修改栏目较多不再逐一展示) 3、设计衣服的功能 (也是本App的核心…

Redis缓存穿透、击穿、雪崩问题及其解决方法

Redis缓存穿透、击穿、雪崩问题及其解决方法 1 缓存穿透1.1 概念及其解决思路1.2 编码解决商品查询的缓存穿透问题: 2 缓存雪崩问题及解决思路3 缓存击穿问题及解决思路3.1 利用互斥锁解决缓存击穿问题3.2 利用逻辑过期解决缓存击穿问题 1 缓存穿透 1.1 概念及其解…

光缆线路网的组网结构是怎样的

1 引言 根据GB 51158-2015《通信线路工程设计规范》,通信线路网包括长途线路、本地线路和接入线路,如图1所示。 图1 通信线路网的组成 根据传输媒质的不同,通信线路分为光缆线路和电缆线路。通信线路也经历了从架空明线到电缆线路再到光缆线路…

利用Google Colab免费使用GPU服务器详细攻略

目录 前言 一、Colab限额、提供的GPU类型 二、Colab的使用步骤(如何使用免费GPU资源) 1、添加Colaboratory 2、新建Colab、连接GPU、挂载Google Driver 3、项目上传文件并运行 三、快速下载/上传Google Drive文件的方法(利用MultiClou…

【java】彻底剖析 Synchronized

文章目录 前言对象结构Monitor 对象Synchronized特征原子性可见性有序性可重入锁 锁升级的过程 前言 源码级别剖析Synchronized 对象结构 Synchronized是Java中的隐式锁,它的获取锁和释放锁都是隐式的,完全交由JVM帮助我们操作,在了解Sync…

Java面试题总结 | Java面试题总结9- RabbitMQ模块(持续更新)

RabbitMQ 文章目录 RabbitMQ为什么使用Rabbitmq而不是其他的消息队列为什么使用消息队列解耦异步削峰 消息队列有什么优缺点MQ的高可用保障单机模式 普通集群模式(无高可用性)镜像集群模式(高可用性) MQ如何保证不重复消费、幂等性…

ROS导航包Navigation中的 Movebase节点路径规划相关流程梳理

本文主要介绍ROS导航包Navigation中的 Movebase节点中的路径规划的相关流程,并对其进行梳理概括,同时本文也是《ROS局部路径规划器插件teb_local_planner规划流程概括总结》部分的前述文章。 1、接收到目标点信息goal 在接收到目标点goal之后&#xff0c…

JAVA医院管理云HIS统计报表子系统、系统管理字系统功能实现

一、统计报表子系统 统计报表子系统功能模块:包括门诊收入汇总、住院收入汇总、收费统计报表、收费明细报表、 缴款日报、门诊收费汇总、住院科室日志、住院结算汇总、医疗项目统计、检查项目统计、 检验项目统计、月末收支汇总、药品进销存统计。 (1…

从零开始三端口DC-DC变换器

1、 题目解析 基本要求 (1) U S 50 V 、 I O 1.2 A U_S50V、I_O1.2A US​50V、IO​1.2A 条件下,变换器工作在模式I, U O 30 V 0.1 V , I B ≥ 0.1 A U_O30V0.1V,I_B≥0.1A UO​30V0.1V,IB​…

CleanMyMac X4.13.2最新版下载

现在cleanmymac x4.13.2中文版是大家首选的优秀mac清理软件。CleanMyMac集合了多种功能,几乎可以满足用户所有的清洁需求。它不仅包含各种清理功能,还具有卸载、维护、扩展、碎纸机等实用功能,可同时替代多种工具。它可以清理、优化、维护和监…

边缘人工智能——nanodet模型实践指引,从标注数据集到实现部署文件

内容概述 首先获得一个合适的nanodet模型版本,配置nanodet适用的环境,然后对网上公开的生数据集进行重新标注,配置nanodet并进行训练,.pth到.onnx的模型转化及简化,编写推理文件。 文章着重于实践方向指引,…

【LeetCode股票买卖系列:123. 买卖股票的最佳时机 III 暴力递归=>记忆化搜索=>动态规划】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

基于Flask+Bootstrap+机器学习的南昌市租房价格预测系统

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

图片分类:精细化分类,(Fine-Grained Categorization) 基于人的行为的精细化分类

文字大纲 简介数据集常用数据集方法1 : 强监督方法2 : 弱监督Two Level Attention Model双线性网络 Bilinear CNN model参考文献和学习路径简介 细粒度图像识别 (fine-grained image recognition),即 精细化分类。 细粒度图像分类(Fine-Grained Categorization), 又被称作…

2023年05月IDE流行度最新排名

点击查看最新IDE流行度最新排名(每月更新) 2023年05月IDE流行度最新排名 顶级IDE排名是通过分析在谷歌上搜索IDE下载页面的频率而创建的 一个IDE被搜索的次数越多,这个IDE就被认为越受欢迎。原始数据来自谷歌Trends 如果您相信集体智慧&am…

感知机介绍

1&#xff0c;数学定义&#xff1a; Note:<>在数学中通常指求期望的意思。 假设我们用感知机区分cat和dog&#xff0c;使用下面三个特征&#xff1a;x1: color of hair&#xff1b;x2:length of leg&#xff1b;x3:volume of head。cat 用1表示&#xff0c;dog用-1表示&…

Golang每日一练(leetDay0053)

目录 155. 最小栈 Min Stack &#x1f31f;&#x1f31f; 156. 二叉树的上下翻转 Binary Tree Upside Down &#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 …

ArrayList集合扩容机制入门

首先&#xff0c;ArrayList集合存储的数据在底层是一个数组&#xff08;名字elementData&#xff09;&#xff0c;这个数组是Object的数组&#xff0c;因为是Object数组&#xff0c;所以集合啥都可以装。 讲解ArrayList的扩容机制&#xff0c;要从ArrayList的构造器来分类&…