详解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 COUNT函数的使用与优化
May 10 MySQL
MySQL 常见存储引擎的优劣
Jun 02 MySQL
MySQL 那些常见的错误设计规范,你都知道吗
Jul 16 MySQL
MySQL修炼之联结与集合浅析
Oct 05 MySQL
浅谈MySQL表空间回收的正确姿势
Oct 05 MySQL
教你使用VS Code的MySQL扩展管理数据库的方法
Jan 22 MySQL
mysql使用instr达到in(字符串)的效果
Apr 03 MySQL
MySQL数据库Innodb 引擎实现mvcc锁
May 06 MySQL
mysql数据库实现设置字段长度
Jun 10 MySQL
MySQL慢查询中的commit慢和binlog中慢事务的区别
Jun 16 MySQL
MySQL解决Navicat设置默认字符串时的报错问题
Jun 16 MySQL
MySQL分布式恢复进阶
Jul 23 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和ACCESS写聊天室(九)
2006/10/09 PHP
PHP 简单日历实现代码
2009/10/28 PHP
Yii结合CKEditor实现图片上传功能
2014/06/13 PHP
通过修改配置真正解决php文件上传大小限制问题(nginx+php)
2015/09/23 PHP
复制本贴标题和地址的js代码
2008/07/01 Javascript
15条JavaScript最佳实践小结
2013/08/09 Javascript
jquery实现从数组移除指定的值
2015/06/24 Javascript
浅谈Vue内置component组件的应用场景
2018/03/27 Javascript
NodeJS搭建HTTP服务器的实现步骤
2018/10/12 NodeJs
vue中使用protobuf的过程记录
2018/10/26 Javascript
Vue.js组件高级特性实例详解
2018/12/24 Javascript
layui 弹出层值回传解决方式
2019/11/14 Javascript
[42:52]IG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
[03:18]【TI9纪实】社区大触GL与木木
2019/08/25 DOTA
python中文编码问题小结
2014/09/28 Python
Python之ReportLab绘制条形码和二维码的实例
2018/01/15 Python
使用anaconda的pip安装第三方python包的操作步骤
2018/06/11 Python
Python中实现单例模式的n种方式和原理
2018/11/14 Python
一个可以套路别人的python小程序实例代码
2019/04/09 Python
利用Python查看微信共同好友功能的实现代码
2019/04/24 Python
django基于cors解决跨域请求问题详解
2019/08/06 Python
解决torch.autograd.backward中的参数问题
2020/01/07 Python
PyTorch 普通卷积和空洞卷积实例
2020/01/07 Python
详解pycharm连接不上mysql数据库的解决办法
2020/01/10 Python
Pandas DataFrame求差集的示例代码
2020/12/13 Python
Clarins娇韵诗美国官网:法国天然护肤品牌
2016/09/26 全球购物
HEMA法国:荷兰原创设计
2019/02/21 全球购物
英国卫浴商店:Ergonomic Design
2019/09/22 全球购物
美国小蜜蜂Burt’s Bees德国官网:天然唇部、皮肤和身体护理产品
2020/06/14 全球购物
编写一子程序,将一链表倒序,即使链表表尾变表头,表头变表尾
2016/02/10 面试题
UNIX操作系统结构由哪几部分组成
2016/02/17 面试题
国家税务局领导班子对照检查材料思想汇报
2014/10/04 职场文书
2015年世界环境日活动方案
2015/05/05 职场文书
商场广播稿范文
2015/08/19 职场文书
《比的意义》教学反思
2016/02/18 职场文书
python调试工具Birdseye的使用教程
2021/05/25 Python