inner join和join的区别举例子说明
时间: 2023-07-07 20:20:31 浏览: 77
在SQL中,Join指的是将两个或多个数据表中的记录按照指定的条件连接起来,生成一个新的数据表。而Inner join是Join的一种,它返回两个数据表中满足联结条件的记录,即在两个数据表中都有相应匹配的记录。
举个例子,假设我们有两个数据表A和B,它们的结构如下:
表A:
| ID | Name | Age |
|----|-------|-----|
| 1 | Alice | 25 |
| 2 | Bob | 30 |
| 3 | Cindy | 35 |
表B:
| ID | Gender | City |
|----|--------|--------|
| 1 | F | Beijing |
| 2 | M | Shanghai |
| 4 | F | Guangzhou |
如果我们想要将表A和表B中ID相同的记录连接起来,生成一个新的数据表,可以使用如下的SQL语句:
```
SELECT A.ID, A.Name, A.Age, B.Gender, B.City
FROM A
INNER JOIN B
ON A.ID = B.ID
```
这条SQL语句使用了Inner join,它会返回ID为1和2的记录,因为它们在两个数据表中都有相应匹配的记录。生成的新数据表如下:
| ID | Name | Age | Gender | City |
|----|-------|-----|--------|----------|
| 1 | Alice | 25 | F | Beijing |
| 2 | Bob | 30 | M | Shanghai |
如果我们使用Join而不是Inner join,那么它会返回所有在两个数据表中有匹配的记录,包括ID为3的记录,但是在表B中没有相应匹配的记录。生成的新数据表如下:
| ID | Name | Age | Gender | City |
|----|-------|-----|--------|------------|
| 1 | Alice | 25 | F | Beijing |
| 2 | Bob | 30 | M | Shanghai |
| 3 | Cindy | 35 | NULL | NULL |
从上面的例子可以看出,Inner join只返回两个数据表中都有相应匹配的记录,而Join则返回所有在两个数据表中有匹配的记录。
阅读全文