join 与left join 的区别
时间: 2024-02-06 22:07:37 浏览: 59
join和left join是SQL中用于合并两个或多个表的操作。它们之间的区别在于合并的方式和结果的显示。
join操作是内连接,它只返回两个表中共有的行。也就是说,只有在两个表中都存在的行才会被返回。
left join操作是左连接,它以左边的表为基准,返回左边表中的所有行,同时将右边表中与左边表匹配的行也返回。如果右边表中没有与左边表匹配的行,则返回NULL值。
下面是一个示例:
假设我们有两个表:表A和表B。
表A的数据如下:
| id | name |
|----|-------|
| 1 | Alice |
| 2 | Bob |
| 3 | Carol |
表B的数据如下:
| id | age |
|--|
| 1 | 20 |
| 3 | 25 |
| 4 | 30 |
使用join操作:
```sql
SELECT A.id, A.name, B.age
FROM A
JOIN B ON A.id = B.id;
```
结果:
| id | name | age |
|----|-------|-----|
| 1 | Alice | 20 |
| 3 | Carol | 25 |
使用left join操作:
```sql
SELECT A.id, A.name, B.age
FROM A
LEFT JOIN B ON A.id = B.id;
```
结果:
| id | name | age |
|----|-------|-----|
| 1 | Alice | 20 |
| 2 | Bob | NULL|
| 3 | Carol | 25 |
可以看到,使用join操作只返回了两个表中共有的行,而使用left join操作返回了左边表中的所有行,并将右边表中与左边表匹配的行也返回。如果右边表中没有与左边表匹配的行,则返回NULL值。
阅读全文