inner join与 left join
时间: 2023-10-23 21:12:27 浏览: 93
inner join和left join是关系型数据库中用于连接表的两种常见类型的连接操作。
1. Inner Join(内连接):只返回两个表中匹配的行。只有当两个连接表中的键匹配时,才会返回结果。即返回两个表中共有的行。
2. Left Join(左连接):返回左表(左侧)中的所有行,以及右表(右侧)中满足连接条件的匹配行。如果右表中没有与左表匹配的行,则返回NULL值。
举例说明:
假设我们有两个表A和B,分别包含以下数据:
表A:
| ID | Name |
|----|-------|
| 1 | Alice |
| 2 | Bob |
| 3 | Carol |
表B:
| ID | Age |
|----|-----|
| 1 | 25 |
| 3 | 30 |
| 4 | 35 |
1. Inner Join示例:
```sql
SELECT *
FROM A
INNER JOIN B ON A.ID = B.ID;
```
结果:
| ID | Name | Age |
|----|-------|-----|
| 1 | Alice | 25 |
| 3 | Carol | 30 |
只有ID为1和3的行在两个表中都存在,因此只返回这两行。
2. Left Join示例:
```sql
SELECT *
FROM A
LEFT JOIN B ON A.ID = B.ID;
```
结果:
| ID | Name | Age |
|----|-------|-----|
| 1 | Alice | 25 |
| 2 | Bob | NULL|
| 3 | Carol | 30 |
左表A的所有行都会出现在结果中,而右表B中与左表匹配的行会被返回。在这个例子中,ID为2的行在右表中不存在,因此Age列显示为NULL。
总结:
- Inner Join只返回两个表中匹配的行。
- Left Join返回左表中所有的行,以及右表中满足连接条件的匹配行。如果右表中没有匹配的行,则返回NULL值。
阅读全文