left join和inner join的区别
时间: 2023-06-15 20:03:30 浏览: 83
Left join和Inner join都是SQL中的连接(join)操作,它们的区别如下:
1. Inner join只返回两个表中匹配的行,而left join则返回左表中的所有行以及与右表匹配的行。
2. Inner join不包括左表中没有匹配行的记录,而left join包括左表中没有匹配行的记录。
3. Inner join只返回匹配的行,而left join返回所有左表的行,即使没有匹配的行。
例如,我们有两个表A和B,它们的结构如下所示:
Table A:
| id | name |
|----|------|
| 1 | Tom |
| 2 | Bob |
| 3 | Sam |
Table B:
| id | age |
|----|-----|
| 1 | 20 |
| 2 | 25 |
| 4 | 30 |
使用Inner join操作连接表A和B,查询结果如下:
SELECT A.name,B.age FROM A INNER JOIN B ON A.id = B.id;
| name | age |
|------|-----|
| Tom | 20 |
| Bob | 25 |
使用left join操作连接表A和B,查询结果如下:
SELECT A.name,B.age FROM A LEFT JOIN B ON A.id = B.id;
| name | age |
|------|-----|
| Tom | 20 |
| Bob | 25 |
| Sam | NULL|
由于表B中没有id为3的记录,使用left join操作时,表A中id为3的记录也会被返回,但是age列的值为NULL。