inner join 和 left join
时间: 2023-10-11 15:07:06 浏览: 76
inner join 和 left join 都是 SQL 中的关键字,用于在两个或多个表之间建立连接并返回一些相关数据。它们之间的主要区别在于,inner join 只返回两个表中都存在的匹配行,而 left join 返回左表中的所有行和右表中匹配的行。
例如,我们有两个表 A 和 B,它们的结构如下:
表 A:
| id | name |
|----|------|
| 1 | Tom |
| 2 | Bob |
| 3 | Sue |
表 B:
| id | age |
|----|-----|
| 1 | 20 |
| 3 | 25 |
| 4 | 30 |
如果我们使用 inner join 连接这两个表:
```
SELECT A.id, A.name, B.age
FROM A
INNER JOIN B
ON A.id = B.id;
```
返回的结果是:
| id | name | age |
|----|------|-----|
| 1 | Tom | 20 |
| 3 | Sue | 25 |
可以看到,只有 A 表和 B 表中都存在的 id 为 1 和 3 的行被返回了。
如果我们使用 left join 连接这两个表:
```
SELECT A.id, A.name, B.age
FROM A
LEFT JOIN B
ON A.id = B.id;
```
返回的结果是:
| id | name | age |
|----|------|-----|
| 1 | Tom | 20 |
| 2 | Bob | NULL|
| 3 | Sue | 25 |
可以看到,left join 返回了 A 表中的所有行,即使 B 表中没有匹配的行也会返回。如果没有匹配的行,对应的 age 列会显示为 NULL。
阅读全文