左连接与内连接的区别:左连接:返回左表所有行,即使右表中没有匹配的行;右表空值显示为 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中左连接和内连接的区别的详细内容,更多请关注php中文网其它相关文章!
版权声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系 yyfuon@163.com