注册

sql中左连接和内连接的区别

左连接与内连接的区别:左连接:返回左表所有行,即使右表中没有匹配的行;右表空值显示为 null。内连接:仅返回左表和右表中具有匹配行的行;若无匹配行,该行会被忽略。性能:左连接较慢,内连接较快。用例:左连接用于获取左表所有数据,即使右表中没有匹配项;内连接用于仅获取具有匹配行的行。

SQL 中左连接和内连接的区别

在 SQL 中,连接是将来自不同表的行组合在一起的强大工具。左连接和内连接是两种最常用的连接类型,它们在返回的结果方面有不同的行为。

左连接

左连接(LEFT JOIN)返回来自左表的所有行,即使右表中没有匹配的行。如果右表中没有匹配的行,则右表字段的值将显示为 NULL。

内连接

内连接(INNER JOIN)仅返回来自左表和右表中具有匹配行的行。如果没有匹配的行,则该行将不会被返回。

比较

特性 左连接 内连接
返回左表行 所有 仅匹配
处理右表空值 显示为 NULL 忽略
性能 较慢 较快
用例 获取左表所有数据,即使右表中没有匹配项 仅获取具有匹配行的行

示例

考虑以下两个表:

左表:
| id | 名称 |
|---|---|
| 1 | John |
| 2 | Mary |
| 3 | Bob |

右表:
| id | 地址 |
|---|---|
| 1 | 123 Main St |
| 2 | 456 Elm St |

左连接

SELECT *
FROM 左表
LEFT JOIN 右表
ON 左表.id = 右表.id;

结果:

id 名称 地址
1 John 123 Main St
2 Mary 456 Elm St
3 Bob NULL

内连接

SELECT *
FROM 左表
INNER JOIN 右表
ON 左表.id = 右表.id;

结果:

id 名称 地址
1 John 123 Main St
2 Mary 456 Elm St

正如您所看到的,左连接返回了左表的所有行,即使右表中没有匹配的行。而内连接只返回了两个表中都有匹配行的

以上就是sql中左连接和内连接的区别的详细内容,更多请关注CTO智库其它相关文章!