sql中左连接和内连接的区别-SQL
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 |
正如您所看到的,左连接返回了左表的所有行,即使右表中没有匹配的行。而内连接只返回了两个表中都有匹配行的行。