【JOIN】关键字在MySql中的详细使用

目录

[INNER JOIN(内连接)](#INNER JOIN(内连接))

[LEFT JOIN(左连接)](#LEFT JOIN(左连接))

[RIGHT JOIN(右连接)](#RIGHT JOIN(右连接))

[FULL JOIN(全连接)](#FULL JOIN(全连接))

示例图形化解释JOIN的不同类型

[INNER JOIN:](#INNER JOIN:)

[LEFT JOIN:](#LEFT JOIN:)

[RIGHT JOIN:](#RIGHT JOIN:)

[FULL JOIN:](#FULL JOIN:)


INNER JOIN(内连接)

返回两个表中匹配的行。

表达方式1:

复制代码
SELECT * 
FROM table1 
INNER JOIN table2 
ON table1.column = table2.column;

表达方式2:

复制代码
SELECT * 
FROM table1, table2 
WHERE table1.column = table2.column;
LEFT JOIN(左连接)

返回左表中的所有行以及与右表匹配的行。

表达方式1:

复制代码
SELECT * 
FROM table1 
LEFT JOIN table2 
ON table1.column = table2.column;

表达方式2:

复制代码
SELECT * 
FROM table1 
LEFT OUTER JOIN table2 
ON table1.column = table2.column;
RIGHT JOIN(右连接)

返回右表中的所有行以及与左表匹配的行。

表达方式1:

复制代码
SELECT * 
FROM table1 
RIGHT JOIN table2 
ON table1.column = table2.column;

表达方式2:

复制代码
SELECT * 
FROM table1 
RIGHT OUTER JOIN table2 
ON table1.column = table2.column;
FULL JOIN(全连接)

返回左右表中的所有行。

复制代码
SELECT * 
FROM table1 
FULL JOIN table2 
ON table1.column = table2.column;
示例图形化解释JOIN的不同类型
INNER JOIN
复制代码
+----+-------+-----+-------+
| ID | Name  | Age | Grade |
+----+-------+-----+-------+
| 1  | John  | 24  | A     |
| 2  | Alice | 22  | B     |
| 3  | Bob   | 25  | A     |
+----+-------+-----+-------+

+--------+--------+
| ID     | City   |
+--------+--------+
| 1      | London |
| 2      | Paris  |
| 4      | Berlin |
+--------+--------+

After INNER JOIN:

+----+-------+-----+-------+--------+--------+
| ID | Name  | Age | Grade | ID     | City   |
+----+-------+-----+-------+--------+--------+
| 1  | John  | 24  | A     | 1      | London |
| 2  | Alice | 22  | B     | 2      | Paris  |
+----+-------+-----+-------+--------+--------+
LEFT JOIN
复制代码
+----+-------+-----+-------+
| ID | Name  | Age | Grade |
+----+-------+-----+-------+
| 1  | John  | 24  | A     |
| 2  | Alice | 22  | B     |
| 3  | Bob   | 25  | A     |
+----+-------+-----+-------+

+--------+--------+
| ID     | City   |
+--------+--------+
| 1      | London |
| 2      | Paris  |
| 4      | Berlin |
+--------+--------+

After LEFT JOIN:

+----+-------+-----+-------+--------+--------+
| ID | Name  | Age | Grade | ID     | City   |
+----+-------+-----+-------+--------+--------+
| 1  | John  | 24  | A     | 1      | London |
| 2  | Alice | 22  | B     | 2      | Paris  |
| 3  | Bob   | 25  | A     | NULL   | NULL   |
+----+-------+-----+-------+--------+--------+
RIGHT JOIN
复制代码
+----+-------+-----+-------+
| ID | Name  | Age | Grade |
+----+-------+-----+-------+
| 1  | John  | 24  | A     |
| 2  | Alice | 22  | B     |
| 3  | Bob   | 25  | A     |
+----+-------+-----+-------+

+--------+--------+
| ID     | City   |
+--------+--------+
| 1      | London |
| 2      | Paris  |
| 4      | Berlin |
+--------+--------+

After RIGHT JOIN:

+----+-------+-----+-------+--------+--------+
| ID | Name  | Age | Grade | ID     | City   |
+----+-------+-----+-------+--------+--------+
| 1  | John  | 24  | A     | 1      | London |
| 2  | Alice | 22  | B     | 2      | Paris  |
| NULL | NULL  | NULL   | NULL    | 4      | Berlin |
+----+-------+-----+-------+--------+--------+
FULL JOIN
复制代码
+----+-------+-----+-------+
| ID | Name  | Age | Grade |
+----+-------+-----+-------+
| 1  | John  | 24  | A     |
| 2  | Alice | 22  | B     |
| 3  | Bob   | 25  | A     |
+----+-------+-----+-------+

+--------+--------+
| ID     | City   |
+--------+--------+
| 1      | London |
| 2      | Paris  |
| 4      | Berlin |
+--------+--------+

After FULL JOIN:

+----+-------+-----+-------+--------+--------+
| ID | Name  | Age | Grade | ID     | City   |
+----+-------+-----+-------+--------+--------+
| 1  | John  | 24  | A     | 1      | London |
| 2  | Alice | 22  | B     | 2      | Paris  |
| 3  | Bob   | 25  | A     | NULL   | NULL   |
| NULL | NULL  | NULL   | NULL    | 4      | Berlin |
+----+-------+-----+-------+--------+--------+
相关推荐
kirs_ur11 分钟前
CXL(Compute Express Link)— 内存扩展的未来
服务器·数据库·性能优化
MonolithIoT2 小时前
实战方案|设备备件无人值守仓库:连续化产线运维备件 7×24 小时数字化管控方案
运维·网络·数据库
瞬间&永恒~2 小时前
【MySQL】4-6:在同一个主机上使用 systemd 运行多个 MySQL服务器
服务器·数据库·mysql
心机之蛙qee2 小时前
Redis的主从、哨兵及集群
数据库·redis·缓存
gwf2163 小时前
磨损均衡算法(Wear Leveling)——SSD如何让每块闪存“公平退休“?
运维·数据库·人工智能·python·嵌入式硬件·算法·智能硬件
AAA@峥3 小时前
CentOS7 源码编译安装 MySQL5.7|SQL 基础操作 + 备份恢复完整实战
运维·数据库·sql·centos
xixingzhe23 小时前
spring ai简单使用skills
数据库·人工智能·spring
Fu2067214 小时前
数据库第三次作业
数据库
AI多Agent协作实战派4 小时前
AI多Agent协作系统实战(二十三):Agent读HEARTBEAT.md不读AGENTS.md——openclaw的文件加载之谜
前端·数据库·人工智能·uni-app
一嘴一个橘子4 小时前
MysqL 哪些情况适合创建索引
mysql