全外连接给你讲

article/2025/10/6 11:50:20

你知道的越多,你不知道的就越多

先来看看标准SQL里面定义的外连接的三种类型:

  1. 左外连接
  2. 右外连接
  3. 全外连接

        其中,左外连接和右外连接没有本质的区别,用作主表的表写在运算符左侧就是左外连接,卸载运算符右侧就是右外连接,在这三种里面,用的最多的就是左外和右外了,全外连接用的情况比较少,但是不妨碍我们去了解它,为什么用的少呢?我认为很大一部分原因是Mysql中还没有支持全外连接,而我们学习sql大部分都是用的Mysql,所以我们用的最多的还是前面两种。第三种Mysql就不支持。

全外连接是什么:

下面通过一个例子来看一看全外连接

 

 

        上面这两张表中,田中和铃木都属于公共的部分,而伊集院和西园寺分别属于两张表各自拥有的,全外连接就是能够将这两张内容不一致的表,没有遗漏的获取全部信息的方法。

-- 全外连接保留全部信息SELECT COALESCE(A.id, B.id) AS id,A.name AS A_name, 
B.name AS B_name 
FROM Class_A A FULL OUTER JOIN Class_B BON A.id = B.id;

 

        上面就是全外连接的结果集

可以看到四个人的名字全部出现了,Coalesce函数返回第一个非null的数。

上面的sql代码块虽然可以跑出来结果,但是我们用Mysql是不成功的,那么我们怎么办呢?对于mysql中实现全外连接,可以使用左外连接和右外连接,然后再将两个结果进行Union,同样可以达到目的。

 

这种方法虽然可以实现,但是代码比较冗长,而且使用两次连接后还要用union来合并,性能也不是很好。因此,换一个角度,

内连接,就是求集合的积

 

全外连接,就是求集合的和

 

用外连接求差集

在上面的两个Class表中,我们用外连接来求A-B的差集。

  1. 求A-B的差集,那么A就要成为主表,进行左连接。从下面表中,可以看到差集是伊集院

 

2.显示伊集院

在一的基础上,我们进行筛选,找到B的名字为空的就是差集

 

同时用这个方法,我们来求B-A的差集

 

用图片来表示差集

A-B的差集

 

B-A的差集

 

总结:

其实呢,全外连接我们用的很少,基本上的需求都是用左连接和外连接,有时候内连接用的也很多,下一篇会讲解窗口函数,首先用的不是窗口函数,而且用的是递归来实现窗口函数。


http://chatgpt.dhexx.cn/article/2L1o1VVZ.shtml

相关文章

SegmentFault 技术周刊 Vol.30 - 学习 Python 来做一些神奇好玩的事情吧

前言 开始之前,我们先来看这样一个提问: python初学者,请教python学习路径 相信看完 X_AirDu 的回答我们已经对 Python 有了一个大概的了解。那接下来就让我们更深入的了解 Python 吧~ Python 入门 [零基础学Python]一些关于Python的事情 已经…

产品读书《金字塔原理》

PPT参考 1PPT参考2 其实我读这本书并不是把它当作一本读物来读,反倒觉得像是一本工具书,全书的内容可能干货不多,总结出来就是“金字塔”,倒没什么其他,再多也就是一些案例!但是这个思想已经能让人俯首称赞…

转载-代码的马斯洛金字塔

从科技爱好者周刊(第 156 期):显卡缺货与异业竞争看到的关于代码的马斯洛金字塔这种说法;搬运过来方便自己随时阅读; 原文是代码的马斯洛金字塔; 内容如下: As in Maslow’s pyramid, each laye…

需求挖掘:产品经理怎么基于项目做需求挖掘

零、需求分析的背景 日常工作中,我们常常面临别人提过来的需求要不要做,如何去挖掘新的需求、衡量需求的投入产出比等相应的场景,这些场景都涉及到我们对需求的分析和挖掘,也就意味着我们需要掌握足够多的认知和方法论去对指定的需…

如何思考总结,并如何写文档展示. 结构化思考, 金字塔思维

先看三张图: 术语: 交叉表, 是人分类能力提升的一个标志. (对问题思考可以分类到多个维度,并了解维度之间的层级关系,哪个更主要,哪个是次要) 该图的是最简单的整理表格. 进一步复杂的在数据分析上有专门的术语: 叫做交叉表 找不到了 1.上线前 道: 法(制度): 术…

程序员应了解:知识技能金字塔

这是我的开篇文章!! 如今计算机非常火热,尤其是程序员(软件开发)更是大众眼中高工资的代表。 而新的编程语言和技术框架等更新迭代速度可以说是360行中最快之一,一般来说程序员知识半衰期是五年&#xff0…

需求

什么是需求 定义 需求是满足某类用户的某种欲望或解决某些问题时所产生的现象。工具类App的出现就是为了解决用户的某些问题。比如印象笔记,解决了用户记录事物,并整理笔记的需求;番茄todo解决拖延症人群效率低下,办事无条理的问题…

经济学金字塔

2.9.3.1 经济学金字塔 此章节我们将根据广义动量定理与系统思考建立起经济学金字塔的模型。经济学金字塔包含4个层级的均衡。第一层级是两个单一市场的均衡,分别为商品市场的均衡和货币市场的均衡。第二层级是两市场的均衡,即商品市场和货币市场共同达到…

【博学谷学习记录】超强总结,用心分享|产品经理需求分析方法简析

为什么要进行需求分析? 作为产品经理,每天要接触到大大小小不同的需求,在面对需求时,需要进行有效的需求分析,才能更好地了解问题,从而制定相应的解决方案,就是通过用户的问题,找到…

29. 人类将如何变革--走出金字塔模型(上)

作者 | Harper 审核 | gongyouliu 编辑 | auroral-L 人工智能,将改变全世界各行各业的现有工作方式,商业模式以及相关的经济结构,那么人类应该如何应对呢?最最基本的一点,当人工智能开始大规模取代人类工作者的时候&am…

基于空间金字塔网络的光流估计

Optical Flow Estimation using a Spatial Pyramid Network 我们学习通过结合经典的空间金字塔公式和深度学习来计算光流。通过当前流量估计和计算流量更新,在每个金字塔级别扭曲一对图像,通过从粗到细的方法估计大型运动。我们不是在每个金字塔层上对目…

《金字塔原理》读书笔记

0 前言 《金字塔原理》基本是每一位职场人的必修书目,在实习期间也是leader和师兄的强力推荐,在工作的软能力上提升自己。”想清楚,说明白,知道说什么、怎么说“,是我们希望达到的境界。我们在与人沟通时,需…

《腾讯数字生活报告2019》发布,互联网时代新马斯洛需求金字塔预示什么?

来源:腾讯研究院 5月22日,腾讯研究院、腾讯应用宝、腾讯开放平台联合出品的《腾讯数字生活报告2019》在腾讯全球数字生态大会应用生态主题论坛上发布,报告从生存、关系、发展三个层级解读了大众数字生活版图中的新趋势及核心洞察。透过这份数…

产品能力提升|《金字塔原理》

「金字塔原理」芭芭拉明托 2021/3/28 我们希望达到的境界:想清楚,说明白,知道说什么、怎么说。所以在和人沟通的时候需要明确三件事:谁是我的听众、他们想听什么、他们想怎样听。 金字塔原理的基本概念 金字塔原理是一种重点突出…

马斯洛金字塔的大秘密

废话不多说,直接切主题: (以上图片为UCD课件内容) 亚伯拉罕马斯洛在1943年在《人类激励理论》论文中所提出。人类需求像阶梯一样从低到高,按层分为五种:生理需求、安全需求、社交需求、尊重需求和自我实现…

代码的马斯洛金字塔理论

马斯洛曾提出了著名的需求层次理论(马斯洛需求金字塔理论): 人们需要动力实现某些需要,其中的一些需求优先于其他需求。我们可以把人类的需求划分为五个层次(如图1所示),从层次结构的底部往上&…

从特岗教师的需求金字塔,重新理解乡村、教育和科技

教师节刚刚过去,尊师重道,可以说是中国文化中亘古不变的话题。 尤其是在乡村振兴、农村现代化的过程中,都离不开乡村教育发展,而诸多特岗教师、乡村教师,更是被寄予厚望的奉献者,是放弃城市繁华的苦行僧&am…

马斯洛需求层次理论

马斯洛人类需求金字塔理论把需求分成 生理需求、 安全需求、 社交需求、 尊重需求和 自我实现需求 五大类,依次由低层次到高层次,如下图。

马斯诺需求金字塔

美国著名心理学家马斯洛对人的需要进行了系统的、独到的研究,对心理学和行为科学产生了巨大的影响。把人的需要描述成具有五个层次的“金字塔”,已满足的需要达到了什么层次,与人的心理健康程度是有关联的。人的基本需要按优势或力量的强弱排…

金字塔原理

当你在听别人讲话或者看文章时,会时不时用某种逻辑模式,试图把接收到的内容组织起来,让自己理解更加深刻。这种逻辑最优化的选择就是金字塔原理,因为金字塔原理指导下的金字塔结构符合人类的思维模式。 那人类的用脑机制是怎样的呢…