详解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安装后默认自带数据库的作用详解
Apr 27 MySQL
MySQL优化之如何写出高质量sql语句
May 17 MySQL
分析MySQL抛出异常的几种常见解决方式
May 18 MySQL
IDEA 链接Mysql数据库并执行查询操作的完整代码
May 20 MySQL
Mysql 设置boolean类型的操作
Jun 04 MySQL
详细谈谈MYSQL中的COLLATE是什么
Jun 11 MySQL
Mysql数据库值的添加、修改、删除及清空操作实例
Jun 20 MySQL
浅析MySQL如何实现事务隔离
Jun 26 MySQL
MySQL一些常用高级SQL语句
Jul 03 MySQL
MYSQL 的10大经典优化案例场景实战
Sep 14 MySQL
MySQL实例精讲单行函数以及字符数学日期流程控制
Oct 15 MySQL
MySQL实现字段分割一行转多行的示例代码
Jul 07 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
四个常见html网页乱码问题及解决办法
2015/09/08 PHP
Thinkphp5.0框架视图view的模板布局用法分析
2019/10/12 PHP
srcElement表格样式
2006/09/03 Javascript
ext for eclipse插件安装方法
2008/04/27 Javascript
Javascript面向对象扩展库代码分享
2012/03/27 Javascript
js获取当前时间显示在页面上并每秒刷新
2014/12/24 Javascript
使用npm发布Node.JS程序包教程
2015/03/02 Javascript
javascript实时获取鼠标坐标值并显示的方法
2015/04/30 Javascript
jQuery的层级查找方式分析
2016/06/16 Javascript
EasyUI创建对话框的两种方式
2016/08/23 Javascript
js正则表达式惰性匹配和贪婪匹配用法分析
2016/12/26 Javascript
浅谈事件冒泡、事件委托、jQuery元素节点操作、滚轮事件与函数节流
2017/07/22 jQuery
Vue.js用法详解
2017/11/13 Javascript
vue router使用query和params传参的使用和区别
2017/11/13 Javascript
微信小程序多音频播放进度条问题
2018/08/28 Javascript
详解Webpack如何引入CDN链接来优化编译后的体积
2019/06/21 Javascript
Vue3.0的优化总结
2020/10/16 Javascript
使用Python的判断语句模拟三目运算
2015/04/24 Python
浅析Windows 嵌入python解释器的过程
2019/07/26 Python
Python @property装饰器原理解析
2020/01/22 Python
python使用re模块爬取豆瓣Top250电影
2020/10/20 Python
在Pycharm中安装Pandas库方法(简单易懂)
2021/02/20 Python
Waterford美国官网:爱尔兰水晶制品品牌
2017/04/26 全球购物
街头时尚在线:JESSICABUURMAN
2019/06/16 全球购物
荷兰在线啤酒店:Beerwulf
2019/08/26 全球购物
毕业生自荐书模版
2014/01/04 职场文书
五年后的职业生涯规划
2014/03/04 职场文书
家长学校工作方案
2014/05/07 职场文书
公务员试用期满考核材料
2014/05/22 职场文书
教师党员岗位承诺书
2014/05/29 职场文书
环境科学专业教师求职信
2014/07/12 职场文书
2016年感恩节寄语
2015/12/07 职场文书
幼儿教师师德培训心得体会
2016/01/09 职场文书
Oracle创建只读账号的详细步骤
2021/06/07 Oracle
python实现对doc、txt、xls等文档的读写操作
2022/04/02 Python
PyTorch device与cuda.device用法
2022/04/03 Python