sql中左连接与右连接的区别-SQL
点击下载TXTSQL 中左连接与右连接的区别
在 SQL 中,左连接和右连接是连接两个表的两种不同类型。它们的主要区别在于连接结果中优先显示哪个表的数据。
左连接
- 将左表中的所有行与右表中匹配的行连接。
- 如果右表中没有匹配的行,则左表中的该行仍然出现在结果集中,但右表中的列值为空。
右连接
- 将右表中的所有行与左表中匹配的行连接。
- 如果左表中没有匹配的行,则右表中的该行仍然出现在结果集中,但左表中的列值为空。
比较
| 特征 | 左连接 | 右连接 |
|---|---|---|
| 优先表 | 左表 | 右表 |
| 空值 | 左表空值填充为 NULL | 右表空值填充为 NULL |
| 用途 | 显示左表中的所有数据,即使右表中没有匹配的行 | 显示右表中的所有数据,即使左表中没有匹配的行 |
示例
考虑以下两个表:
| 左表 | 右表 | ||
|---|---|---|---|
| id | id | name | |
| 1 | 1 | John | |
| 2 | 2 | Mary | |
| 3 | 3 | Bob |
左连接查询:
SELECT * FROM 左表 LEFT JOIN 右表 ON 左表.id = 右表.id;
结果:
| id | name |
|---|---|
| 1 | John |
| 2 | Mary |
| 3 | NULL |
右连接查询:
SELECT * FROM 右表 RIGHT JOIN 左表 ON 左表.id = 右表.id;
结果:
| id | name | |
|---|---|---|
| 1 | John | |
| 2 | Mary | |
| 3 | Bob | NULL |