这篇文章主要介绍了详解MySQL的内连接和外连接,mySQL包含两种联接,分别是内连接(innerjoin)和外连接(outjoin),但我们又同时听说过左连接,交叉连接等术语,本文就带大家来了解一下,需要的朋友可以参考下
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的内连接和外连接
- Mongodb启动报错完美解决方案:about to fork child process,waiting until server is ready for connections. 2023-07-16
- SQLSERVER调用C#的代码实现 2023-07-29
- SQL Server 2022 AlwaysOn新特性之包含可用性组详解 2023-07-29
- 搭建单机Redis缓存服务的实现 2023-07-13
- 基于Python制作一个简单的文章搜索工具 2023-07-28
- Numpy中如何创建矩阵并等间隔抽取数据 2023-07-28
- Oracle 删除大量表记录操作分析总结 2023-07-23
- MySQL8.0.28安装教程详细图解(windows 64位) 2023-07-26
- 在阿里云CentOS 6.8上安装Redis 2023-09-12
- redis清除数据 2023-09-13