详解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官方导出工具mysqlpump的使用
May 21 MySQL
MYSQL 无法识别中文的永久解决方法
Jun 03 MySQL
MySQL系列之三 基础篇
Jul 02 MySQL
ORM模型框架操作mysql数据库的方法
Jul 25 MySQL
Mysql存储过程、触发器、事件调度器使用入门指南
Jan 22 MySQL
深入讲解数据库中Decimal类型的使用以及实现方法
Feb 15 MySQL
一条 SQL 语句执行过程
Mar 17 MySQL
mysql使用instr达到in(字符串)的效果
Apr 03 MySQL
Windows 64位 安装 mysql 8.0.28 图文教程
Apr 19 MySQL
MySQL数据库之内置函数和自定义函数 function
Jun 16 MySQL
MySQL约束(创建表时的各种条件说明)
Jun 21 MySQL
浅谈MySql update会锁定哪些范围的数据
Jun 25 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新手上路(十二)
2006/10/09 PHP
php获取YouTube视频信息的方法
2015/02/11 PHP
php模板引擎技术简单实现
2016/03/15 PHP
PHP读取并输出XML文件数据的简单实现方法
2017/12/22 PHP
PHP给源代码加密的几种方法汇总(推荐)
2018/02/06 PHP
Code:findPosX 和 findPosY
2006/12/20 Javascript
jQuery 性能优化指南 (1)
2009/05/21 Javascript
理解Javascript_02_理解undefined和null
2010/10/11 Javascript
在IE 浏览器中使用 jquery的fadeIn() 效果 英文字符字体加粗
2011/06/02 Javascript
JavaScript实现找出字符串中第一个不重复的字符
2014/09/03 Javascript
js实现百度搜索提示框
2017/02/05 Javascript
js 实现获取name 相同的页面元素并循环遍历的方法
2017/02/14 Javascript
angular2 ng2 @input和@output理解及示例
2017/10/10 Javascript
nodejs简单访问及操作mysql数据库的方法示例
2018/03/15 NodeJs
react-native使用leanclound消息推送的方法
2018/08/06 Javascript
基于vue和react的spa进行按需加载的实现方法
2018/09/29 Javascript
js纯前端实现腾讯cos文件上传功能的示例代码
2019/05/14 Javascript
关于layui时间回显问题的解决方法
2019/09/24 Javascript
vue $router和$route的区别详解
2020/12/02 Vue.js
浅谈Python处理PDF的方法
2017/11/10 Python
matplotlib设置legend图例代码示例
2017/12/19 Python
Python3使用turtle绘制超立方体图形示例
2018/06/19 Python
Python socket模块实现的udp通信功能示例
2019/04/10 Python
利用Pandas和Numpy按时间戳将数据以Groupby方式分组
2019/07/22 Python
使用pyecharts生成Echarts网页的实例
2019/08/12 Python
Python configparser模块配置文件过程解析
2020/03/03 Python
python中通过pip安装库文件时出现“EnvironmentError: [WinError 5] 拒绝访问”的问题及解决方案
2020/08/11 Python
python爬取2021猫眼票房字体加密实例
2021/02/19 Python
css3圆角边框和边框阴影示例
2014/05/05 HTML / CSS
css3 图片圆形显示 如何CSS将正方形图片显示为圆形图片布局
2014/10/10 HTML / CSS
xml有哪些解析技术?区别是什么
2016/04/26 面试题
八项规定整改措施
2014/02/12 职场文书
就业协议书怎么填
2014/04/11 职场文书
党员群众路线教育实践活动剖析材料
2014/10/10 职场文书
2014年残联工作总结
2014/11/21 职场文书
Mysql排查分析慢sql之explain实战案例
2022/04/19 MySQL