inner join 和 left join的区别
时间: 2023-10-22 15:08:38 浏览: 85
Inner join和left join都是SQL中用于连接两个或多个表的关键字,但是它们之间存在一些区别。
Inner join返回两个表中匹配的记录,即只返回连接条件中两个表中都存在的记录。如果一个表中没有与另一个表匹配的记录,则该记录将被忽略。
而left join返回左侧表中的所有记录,以及右侧表中与左侧表匹配的记录(如果有)。如果右侧表中没有与左侧表匹配的记录,则返回的结果集中将包含null值。
简单来说,inner join只返回匹配的记录,而left join则返回左侧表的所有记录,不管是否匹配右侧表。
例如,假设有两个表A和B,它们的结构如下:
Table A:
id name
1 Alice
2 Bob
3 Charlie
Table B:
id age
1 25
4 30
如果我们使用inner join和left join连接这两个表:
- Inner join语句:SELECT A.id, A.name, B.age FROM A INNER JOIN B ON A.id = B.id
结果集为:
id name age
1 Alice 25
- Left join语句:SELECT A.id, A.name, B.age FROM A LEFT JOIN B ON A.id = B.id
结果集为:
id name age
1 Alice 25
2 Bob NULL
3 Charlie NULL
可以看到,inner join只返回了A和B表中都存在的记录,而left join返回了A表的所有记录,不管B表中是否有匹配的记录。
阅读全文