详解MySQL的内连接和外连接


Posted in MySQL onMay 08, 2023

MySQL 中的内连接、左外连接和右外连接是用于连接两个或多个表的不同方式,它们之间的区别如下:

内连接(Inner Join)

内连接也称为等值连接,只返回两个表中键值匹配的行,即只有在两个表中都有匹配的数据时才会返回。内连接的语法如下:

SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;

左外连接(Left Join)

左连接返回左表中所有记录和右表中匹配的记录,如果右表中没有匹配的记录,则返回 NULL 值。左连接的语法如下:

SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name;

右外连接(Right Join)

右连接返回右表中所有记录和左表中匹配的记录,如果左表中没有匹配的记录,则返回 NULL 值。右连接的语法如下:

SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name = table2.column_name;

以上三种连接方式都是基于相同的基础,只是返回的结果不同。需要根据实际需求选择不同的连接方式来处理数据。

案例:

假设有两个表A和B:

表A:

id name
1 Alice
2 Bob
3 Carol

表B:

id score
1 90
2 80
3 70

内连接查询A和B表中相同id的数据:

sqlCopy code
SELECT A.id, A.name, B.score 
FROM A 
INNER JOIN B 
ON A.id = B.id;

结果:

id name score
1 Alice 90
2 Bob 80

左连接查询A和B表中所有的数据,如果B表中没有与A表相同的id,则B表的score为NULL

sqlCopy code
SELECT A.id, A.name, B.score 
FROM A 
LEFT JOIN B 
ON A.id = B.id;

结果:

id name score
1 Alice 90
2 Bob 80
3 Carol NULL

右连接和左连接相似,只是将A表和B表调换位置,查询B表和A表的数据。

到此这篇关于详解MySQL的内连接和外连接的文章就介绍到这了,更多相关MySQL内连接外连接内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

MySQL 相关文章推荐
MySQL Shell的介绍以及安装
Apr 24 MySQL
my.ini优化mysql数据库性能的十个参数(推荐)
May 26 MySQL
Mysql8.0递归查询的简单用法示例
Aug 04 MySQL
浅谈MySQL之select优化方案
Aug 07 MySQL
MySQL对数据表已有表进行分区表的实现
Nov 01 MySQL
MySQL悲观锁与乐观锁的实现方案
Nov 02 MySQL
MySQL实战记录之如何快速定位慢SQL
Mar 23 MySQL
mysql使用 not int 子查询隐含陷阱
Apr 12 MySQL
MySQL分区路径子分区再分区
Apr 13 MySQL
Mysql 数据库中的 redo log 和 binlog 写入策略
Apr 26 MySQL
MySql数据库 查询时间序列间隔
May 11 MySQL
Mysql如何查看是否使用到索引
Dec 24 MySQL
关于MySQL中explain工具的使用
May 08 #MySQL
postgresql如何找到表中重复数据的行并删除
May 08 #MySQL
SQL Server数据库的三种创建方法汇总
May 08 #MySQL
SQL中去除重复数据的几种方法汇总(窗口函数对数据去重)
May 08 #MySQL
MySQL中TIMESTAMP类型返回日期时间数据中带有T的解决
Dec 24 #MySQL
MySQL实现用逗号进行拼接、以逗号进行分割
Dec 24 #MySQL
MySQL数据管理操作示例讲解
Dec 24 #MySQL
You might like
Ping服务的php实现方法,让网站快速被收录
2012/02/04 PHP
php写入txt乱码的解决方法
2019/09/17 PHP
js日期时间补零的小例子
2013/03/05 Javascript
瀑布流布局并自动加载实现代码
2013/03/12 Javascript
JS实现一键回顶功能示例代码
2013/10/28 Javascript
JS简单实现元素复制示例附图
2013/11/19 Javascript
js利用数组length属性清空和截短数组的小例子
2014/01/15 Javascript
在JavaScript中对HTML进行反转义详解
2016/05/18 Javascript
14 个折磨人的 JavaScript 面试题
2016/08/08 Javascript
Node.js批量给图片加水印的方法
2016/11/15 Javascript
Javascript 使用ajax与C#获取文件大小实例详解
2017/01/13 Javascript
JS常见算法详解
2017/02/28 Javascript
JavaScript校验Number(4,1)格式的数字实例代码
2017/03/13 Javascript
利用原生的JavaScript实现简单拼图游戏
2018/11/18 Javascript
详解vuex持久化插件解决浏览器刷新数据消失问题
2019/04/15 Javascript
微信小程序分享小程序码的生成(带参数)以及参数的获取
2020/03/25 Javascript
uniapp实现可以左右滑动导航栏
2020/10/21 Javascript
[51:22]Fnatic vs IG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python中使用Beautiful Soup库的超详细教程
2015/04/30 Python
Python信息抽取之乱码解决办法
2017/06/29 Python
Python字符串格式化%s%d%f详解
2018/02/02 Python
python3获取当前目录的实现方法
2019/07/29 Python
python实现实时视频流播放代码实例
2020/01/11 Python
python opencv如何实现图片绘制
2020/01/19 Python
python通过文本在一个图中画多条线的实例
2020/02/21 Python
Redbubble法国:由独立艺术家设计的独特产品
2019/01/08 全球购物
Paul Smith英国官网:英国国宝级时装品牌
2019/03/21 全球购物
乐观大学生的自我评价
2014/01/10 职场文书
会议开场欢迎词
2014/01/15 职场文书
宣传部部长竞选演讲稿
2014/04/26 职场文书
幼儿园爱国卫生月活动总结
2014/06/30 职场文书
李强优秀员工观后感
2015/06/16 职场文书
宝宝满月宴答谢词
2015/09/30 职场文书
观看《杨善洲》宣传教育片心得体会
2016/01/23 职场文书
装修安全责任协议书
2016/03/22 职场文书
MySQL 字符集 character
2022/05/04 MySQL