左连接和左外连接的主要区别在于输出结果中来自左表的行:左连接:返回所有匹配左表和右表的行,不匹配的行被排除在外。左外连接:返回左表的所有行,对于匹配右表的行返回匹配值,对于不匹配的行返回 null 值。
左连接与左外连接的区别
左连接和左外连接是两个在 SQL 中常用的连接操作,用于从不同表中获取数据。主要区别在于左连接会返回所有来自左表(或驱动表)的行,而左外连接会返回所有来自左表的行,以及来自右表(或从属表)的匹配行或 NULL 值。
左连接 (INNER JOIN)
- 返回来自左表和右表的匹配行。
- 只有当右表中有匹配的记录时,才会返回左表中的行。
- 如果右表中没有匹配的记录,则左表中的行将被排除在外。
左外连接 (LEFT JOIN)
- 返回来自左表的所有行。
- 对于在右表中找到匹配的左表行,返回匹配的右表列值。
- 对于在右表中没有匹配的左表行,返回 NULL 值。
示例
使用以下表进行说明:
表 A
ID | 名称 |
---|---|
1 | John |
2 | Mary |
3 | Bob |
表 B
ID | 部门 |
---|---|
1 | 销售 |
2 | 营销 |
左连接查询:
SELECT *
FROM A
INNER JOIN B
ON A.ID = B.ID;
结果:
ID | 名称 | 部门 |
---|---|---|
1 | John | 销售 |
2 | Mary | 营销 |
左外连接查询:
SELECT *
FROM A
LEFT JOIN B
ON A.ID = B.ID;
结果:
ID | 名称 | 部门 |
---|---|---|
1 | John | 销售 |
2 | Mary | 营销 |
3 | Bob | NULL |
如您所见,左外连接返回了表 A 中的所有行,即使在表 B 中没有匹配的记录,也会返回 NULL 值。
以上就是sql中左连接和左外连接的区别是什么的详细内容,更多请关注编程网其它相关文章!