SQL中left join和inner join有什么区别?
时间: 2023-11-22 22:47:42 浏览: 97
在SQL中,left join和inner join都是用于连接两个或多个表的操作,它们之间的区别在于连接的方式和结果集的不同。
left join会返回左表中所有的记录,而不仅仅是两个表中都存在的记录。如果右表中没有匹配的记录,则结果集中右表的所有列都将显示为NULL。而inner join只会返回两个表中都存在的记录,如果某个表中没有匹配的记录,则该记录不会出现在结果集中。
下面是一个示例,假设我们有两个表A和B,它们的结构如下:
表A:
| id | name |
|----|------|
| 1 | Tom |
| 2 | Jack |
| 3 | Lucy |
表B:
| id | age |
|----|-----|
| 1 | 20 |
| 2 | 25 |
| 4 | 30 |
使用left join和inner join连接这两个表,结果如下:
left join:
```
SELECT A.id, A.name, B.age
FROM A
LEFT JOIN B
ON A.id = B.id;
```
| id | name | age |
|----|------|-----|
| 1 | Tom | 20 |
| 2 | Jack | 25 |
| 3 | Lucy | NULL|
inner join:
```
SELECT A.id, A.name, B.age
FROM A
INNER JOIN B
ON A.id = B.id;
```
| id | name | age |
|----|------|-----|
| 1 | Tom | 20 |
| 2 | Jack | 25 |
阅读全文