join和left join的区别,举个例子
时间: 2024-05-11 20:12:59 浏览: 11
join和left join都是关系型数据库中常用的查询语句。它们的主要区别在于对左表和右表的连接方式不同。
在使用join查询时,只有左右两张表中都存在匹配的行才会被查询出来。而left join则会将左表中所有的行都查询出来,右表中没有匹配的行则显示为null。
例如,假设我们有两张表A和B,它们的结构如下:
表A:
| id | name |
|----|-------|
| 1 | Alice |
| 2 | Bob |
| 3 | Carol |
表B:
| id | age |
|--|
| 1 | 20 |
| 4 | 30 |
| 5 | 40 |
如果我们使用join查询,结果如下:
```
SELECT A.id, A.name, B.age
FROM A
JOIN B ON A.id = B.id;
| id | name | age |
|----|-------|-----|
| 1 | Alice | 20 |
```
因为只有id为1的行在A和B两个表中都存在,所以只有这个行被查询出来了。
如果我们使用left join查询,结果如下:
```
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 | null|
```
由于表A中所有的行都被查询出来了,所以即使在表B中没有匹配的行,左表A中的所有行也会被查询出来,并且在age列上显示为null。