MySQL 内连接、外连接、左连接、右连接、全连接

article/2025/10/6 11:56:37

建表语句:

CREATE TABLE `a_table` (`a_id` int(11) DEFAULT NULL,`a_name` varchar(10) DEFAULT NULL,`a_part` varchar(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
CREATE TABLE `b_table` (`b_id` int(11) DEFAULT NULL,`b_name` varchar(10) DEFAULT NULL,`b_part` varchar(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

表测试数据:
在这里插入图片描述
一、内连接
关键字:inner join on
语句:select * from a_table a inner join b_table b on a.a_id = b.b_id;
执行结果:
在这里插入图片描述
说明:组合两个表中的记录,返回关联字段相符的记录,也就是返回两个表的交集(阴影)部分。
在这里插入图片描述

二、左连接(左外连接)
关键字:left join on / left outer join on
语句:select * from a_table a left join b_table b on a.a_id = b.b_id;
执行结果:
在这里插入图片描述
说明:
left join 是left outer join的简写,它的全称是左外连接,是外连接中的一种。
左(外)连接,左表(a_table)的记录将会全部表示出来,而右表(b_table)只会显示符合搜索条件的记录。右表记录不足的地方均为NULL。

在这里插入图片描述

三、右连接(右外连接)
关键字:right join on / right outer join on
语句:select * from a_table a right outer join b_table b on a.a_id = b.b_id;
执行结果:
在这里插入图片描述
说明:
right join是right outer join的简写,它的全称是右外连接,是外连接中的一种。
与左(外)连接相反,右(外)连接,左表(a_table)只会显示符合搜索条件的记录,而右表(b_table)的记录将会全部表示出来。左表记录不足的地方均为NULL。
在这里插入图片描述
四、全连接(全外连接)
MySQL目前不支持此种方式,可以用其他方式替代解决。
全外连接:左表和右表都不做限制,所有的记录都显示,两表不足的地方用null 填充;
也就是:
左外连接=左表全部记录+相关联结果
右外连接=右表全部记录+相关联结果
全外连接=左表全部记录+右表全部记录+相关联结果=左外连接+右外连接-相关联结果(即去重复)

那么在MYSQL中谁可以做到呢?
UNION
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
注释:默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。

故实现全外连接可以使用:

SELECT * FROM emp e LEFT JOIN dept d ON e.deptno=d.deptno
UNION
SELECT * FROM emp e RIGHT JOIN dept d ON e.deptno=d.deptno;

在这里插入图片描述
注释:以上连接全为等值连接;Oracle中全外连接可以使用full join;请不要弄混。


http://chatgpt.dhexx.cn/article/RSyh8iQA.shtml

相关文章

SQL中的各种连接的区别总结(内连接,左连接,左外连接,右连接,右外连接,全连接,全外连接)

在数据库中建立两张表方便大家理解,teacher和student表(student表中的teacherid字段是对应teacher表中的ID,举个例子张三的老师就是李四,没有teacherid就是这个人暂时没有老师) INNER JOIN: 返回两个表的匹配得上的数据,不匹配不…

MYSQL语法:左连接、右连接、内连接、全外连接

文章目录 概念上手使用left join(左连接)rint join(右连接)inner join(内连接,等同join)full join(全连接,等同full outer join) 概念 left join(左连接):返回包括左表中…

MySQL 的等值连接、交叉连接、左外连接 、右外连接、全外连接实例

1. 测试数据 测试数据如下所示,数据库脚本(含数据)在文章最后的附录中给出。 测试工具:MySQL8.0 , Navicat Premium。 首先是一个班级表:class,class表中的数据如下所示。 学生表: student&a…

数据库学习之MySQL (十六)—— SQL99 外连接 左外连接 右外连接 全外连接 交叉连接

文章目录 外连接 之 左外连接 与 右外连接为啥要用外连接全外连接总结 内连接 外连接交叉连接 外连接 之 左外连接 与 右外连接 我们先来看个之前的 女神男朋友的案例 传送:数据库学习之MySQL (十三)——多表查询 SQL92 SQL99 连接种类划分 我们先考虑…

ORACLE的左右连接,全外连接

先上概念 oracle连接分为: 左外连接:左表不加限制,保留左表的数据,匹配右表,右表没有匹配到的行中的列显示为null。 右外连接:右表不加限制,保留右表的数据。匹配左表,左表没有匹配…

SQL的内连接、左连接、右连接、 交叉连接、全外连接

sql表连接分成 外连接 、 内连接 和 交叉连接。. 外连接包括三种,分别是左外连接、右外连接、全外连接。. 对应的sql关键字:LEFT/RIGHT/FULL OUTER JOIN,通常我们都省略OUTER关键字,写成LEFT/RIGHT/FULL JOIN。. 在左、右外连接中都会以一种表为基表,基表的所有行、…

Mysql中实现全外连接

MySql中多表查询只提供了内连接,左外连接与右外连接: table_reference {[INNER] JOIN | {LEFT|RIGHT} [OUTER] JOIN} table_reference ON conditional_expr 1】INNER JOIN ON内连接(只写join时默认为内连接) SELECT * FROM emp e…

mysql 全外连接报错的原因

mysql 不支持 直接写full outer join 或者 full join来表示全外连接但是可以用left right union right 代替。 全外连接图(非原创图) 下面的是全外连接例子: select * from table a A(A为别名)LEFT JOIN table b B …

Oracle:左连接、右连接、全外连接、(+)号详解

目录 Oracle 左连接、右连接、全外连接、()号详解 1、左外连接(LEFT OUTER JOIN/ LEFT JOIN) 2、右外连接(RIGHT OUTER JOIN/RIGHT JOIN) 3、全外连接(FULL OUTER JOIN/FULL JOIN&#xff0…

全外连接给你讲

你知道的越多,你不知道的就越多 先来看看标准SQL里面定义的外连接的三种类型: 左外连接右外连接全外连接 其中,左外连接和右外连接没有本质的区别,用作主表的表写在运算符左侧就是左外连接,卸载运算符右侧就是右外连接…

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…