[sql]join的5种方式:inner join、left(outer) join、right (outer) Join、full(outer) join、cross join...
时间: 2024-06-05 19:12:11 浏览: 11
是的,你说得对,SQL中常用的join方式有以下五种:
1. Inner Join:仅返回满足两个表中关联条件的记录。语法为:SELECT * FROM table1 INNER JOIN table2 ON table1.column = table2.column。
2. Left (Outer) Join:返回左表中所有记录和右表中满足关联条件的记录。如果右表中没有匹配的记录,仍然返回左表中的所有记录。语法为:SELECT * FROM table1 LEFT JOIN table2 ON table1.column = table2.column。
3. Right (Outer) Join:与左外连接相反,返回右表中所有记录和左表中满足关联条件的记录。如果左表中没有匹配的记录,仍然返回右表中的所有记录。语法为:SELECT * FROM table1 RIGHT JOIN table2 ON table1.column = table2.column。
4. Full (Outer) Join:返回左表和右表中所有记录,如果某个表中没有匹配的记录,将返回NULL值。语法为:SELECT * FROM table1 FULL OUTER JOIN table2 ON table1.column = table2.column。
5. Cross Join:返回两个表中的所有记录的笛卡尔积(即没有任何条件约束的连接)。语法为:SELECT * FROM table1 CROSS JOIN table2。
相关问题
inner join、 left join 、right join、 outer join语法
以下是SQL中inner join、left join、right join、outer join的语法:
1. inner join语法:
```sql
SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;
```
2. left join语法:
```sql
SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name;
```
3. right join语法:
```sql
SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name = table2.column_name;
```
4. outer join语法:
```sql
SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name = table2.column_name;
```
其中,inner join返回两个表中联结字段相等的行,left join返回包括左表中的所有记录和右表中联结字段相等的记录,right join返回包括右表中的所有记录和左表中联结字段相等的记录,outer join返回两个表中联结字段相等的行以及未联结的行。
inner join、 left join 、right join、 outer join之间的区别
这四种 join 是 SQL 中常用的关联查询方式,它们之间的区别如下:
1. Inner Join(内连接):只返回两个表中符合条件的记录,即两个表中都存在的记录。
2. Left Join(左连接):返回左表中所有记录和右表中符合条件的记录,如果右表中没有符合条件的记录,则返回 NULL。
3. Right Join(右连接):返回右表中所有记录和左表中符合条件的记录,如果左表中没有符合条件的记录,则返回 NULL。
4. Outer Join(外连接):包括左连接和右连接,同时返回左表中所有记录和右表中所有记录,并根据条件匹配记录,如果没有匹配的记录,则返回 NULL。
举个例子,假设有两个表 A 和 B,它们的结构如下:
表 A:
| ID | Name |
| :--: | :----: |
| 1 | Tom |
| 2 | Peter |
| 3 | John |
表 B:
| ID | Age |
| :--: | :-: |
| 1 | 20 |
| 3 | 30 |
| 4 | 25 |
那么根据不同的 join 类型,查询结果如下:
1. 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 |
| 3 | John | 30 |
2. 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 | Peter | NULL |
| 3 | John | 30 |
3. Right Join:
```
SELECT A.ID, A.Name, B.Age
FROM A
RIGHT JOIN B
ON A.ID = B.ID;
```
| ID | Name | Age |
| :--: | :----: | :-: |
| 1 | Tom | 20 |
| 3 | John | 30 |
| 4 | NULL | 25 |
4. Outer Join:
```
SELECT A.ID, A.Name, B.Age
FROM A
FULL OUTER JOIN B
ON A.ID = B.ID;
```
| ID | Name | Age |
| :--: | :----: | :--: |
| 1 | Tom | 20 |
| 2 | Peter | NULL |
| 3 | John | 30 |
| 4 | NULL | 25 |
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)