详解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和Oracle之间的误区
May 18 MySQL
MySQL 查询速度慢的原因
May 25 MySQL
mysql定时自动备份数据库的方法步骤
Jul 07 MySQL
一篇文章带你深入了解Mysql触发器
Aug 02 MySQL
MySQL 如何限制一张表的记录数
Sep 14 MySQL
MySQL面试题讲解之如何设置Hash索引
Nov 01 MySQL
MySQL中一条SQL查询语句是如何执行的
Apr 08 MySQL
mysql sql常用语句大全
Jun 21 MySQL
mysql全面解析json/数组
Jul 07 MySQL
MySQL存储过程及语法详解
Aug 05 MySQL
mysql数据库如何转移到oracle
Dec 24 MySQL
MySQL中TIMESTAMP类型返回日期时间数据中带有T的解决
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
php生成随机密码的几种方法
2011/01/17 PHP
PHP高自定义性安全验证码代码
2011/11/27 PHP
PHP json_encode中文乱码问题的解决办法
2013/09/09 PHP
详解PHP执行定时任务的实现思路
2015/12/21 PHP
PHP实现的多维数组去重操作示例
2018/07/21 PHP
PHP7使用ODBC连接SQL Server2008 R2数据库示例【基于thinkPHP5.1框架】
2019/05/06 PHP
Alliance vs Liquid BO3 第三场2.13
2021/03/10 DOTA
JavaScript CSS修改学习第五章 给“上传”添加样式
2010/02/19 Javascript
iframe的onload在Chrome/Opera中执行两次Bug的解决方法
2011/03/17 Javascript
Javascript模拟加速运动与减速运动代码分享
2014/12/11 Javascript
JavaScript将一个数组插入到另一个数组的方法
2015/03/19 Javascript
jQuery表单美化插件jqTransform使用详解
2015/04/12 Javascript
浅谈document.write()输出样式
2015/05/07 Javascript
浅谈jQuery中height与width
2015/07/06 Javascript
深入浅出讲解ES6的解构
2016/08/03 Javascript
20行js代码实现的贪吃蛇小游戏
2017/06/20 Javascript
parabola.js抛物线与加入购物车效果的示例代码
2017/10/25 Javascript
webpack4.x打包过程详解
2018/07/18 Javascript
vue中各种通信传值方式总结
2019/02/14 Javascript
微信小程序自定义可滑动顶部TabBar选项卡实现页面切换功能示例
2019/05/14 Javascript
Vue图片浏览组件v-viewer用法分析【支持旋转、缩放、翻转等操作】
2019/11/04 Javascript
JavaScript实现随机点名程序
2020/03/25 Javascript
js实现无刷新监听URL的变化示例代码详解
2020/06/03 Javascript
[58:35]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.22
2019/09/05 DOTA
python 网络编程详解及简单实例
2017/04/25 Python
python 识别图片中的文字信息方法
2018/05/10 Python
python爬虫学习笔记之Beautifulsoup模块用法详解
2020/04/09 Python
pytorch VGG11识别cifar10数据集(训练+预测单张输入图片操作)
2020/06/24 Python
python+selenium+chrome实现淘宝购物车秒杀自动结算
2021/01/07 Python
Nike英国官网:Nike.com (UK)
2017/02/13 全球购物
香港唯港荟酒店预订:Hotel ICON
2018/03/27 全球购物
C/C++程序员常见面试题二
2015/11/19 面试题
盛大笔试题
2016/11/05 面试题
励志演讲稿500字
2014/08/21 职场文书
父亲节活动策划方案
2014/08/24 职场文书
爱心捐款倡议书:点燃希望,传递温暖
2019/11/04 职场文书