Oracle中left join 和join的区别
时间: 2023-07-23 16:15:02 浏览: 120
在 Oracle 中,JOIN 和 LEFT JOIN 都是用来结合两个或多个表中的数据的 SQL 查询。它们的区别在于,LEFT JOIN 返回左表中的所有行以及与右表匹配的行,如果右表中没有匹配的行,则返回空值。而 JOIN 只返回左右表中匹配的行。
具体来说,如果我们有两个表A和B,其中A有n行,B有m行,LEFT JOIN 返回的结果集中会包含A表中所有的n行和B表中匹配的m行,如果B表中没有匹配的行,则返回NULL。而 JOIN 只返回A和B表中都匹配的行,如果B表中没有匹配的行,则该行不会出现在结果集中。
例如,如果我们有两个表A和B,其中A包含以下数据:
| id | name |
|----|------|
| 1 | Tom |
| 2 | Jack |
| 3 | Mary |
B表包含以下数据:
| id | age |
|----|-----|
| 1 | 20 |
| 3 | 25 |
| 4 | 30 |
LEFT JOIN A 和 B 表的结果集如下:
| id | name | age |
|----|------|-----|
| 1 | Tom | 20 |
| 2 | Jack | NULL |
| 3 | Mary | 25 |
而 JOIN A 和 B 表的结果集如下:
| id | name | age |
|----|------|-----|
| 1 | Tom | 20 |
| 3 | Mary | 25 |
因此,LEFT JOIN 会返回 A 表中所有的行,而 JOIN 只返回 A 和 B 表中都匹配的行。
阅读全文
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pptx](https://img-home.csdnimg.cn/images/20241231044947.png)