inno join和left join对比
时间: 2023-10-11 16:05:50 浏览: 96
inno join 和 left join 是数据库中常用的连接操作。它们的主要区别在于对连接表中没有匹配记录的处理方式。
- Inner Join(内连接):只返回连接表中匹配的记录,即两个表中共有的记录。这是 inno join 的一种形式。
- Left Join(左连接):返回连接表中匹配的记录以及左表中所有的记录,无论是否在右表中有匹配记录。如果右表中没有匹配记录,那么对应的列值将为 NULL。
简单来说,inno join 返回两个表中匹配的记录,而 left join 返回左表中所有的记录,并根据右表的匹配情况决定是否返回对应的列值。
举个例子,假设有两个表 A 和 B:
表 A:
| id | name |
|----|------|
| 1 | Amy |
| 2 | Bob |
| 3 | Carl |
表 B:
| id | age |
|----|-----|
| 1 | 25 |
| 3 | 30 |
| 4 | 35 |
使用 inno join 的查询结果为:
| id | name | age |
|----|------|-----|
| 1 | Amy | 25 |
| 3 | Carl | 30 |
使用 left join 的查询结果为:
| id | name | age |
|----|------|-----|
| 1 | Amy | 25 |
| 2 | Bob | NULL|
| 3 | Carl | 30 |
可以看到,inno join 返回两个表中 id 匹配的记录,而 left join 返回表 A 中所有的记录,并根据表 B 的匹配情况返回对应的 age 列值。如果没有匹配的记录,age 列的值为 NULL。