full join 讲解
时间: 2023-10-20 20:15:29 浏览: 38
Full join 是一种关系数据库中的操作,它将两个表格中的所有记录(或行)合并成一个新的表格。Full join 通常用于查找两个表格中所有的匹配和不匹配记录。
Full join 的语法如下:
```sql
SELECT *
FROM table1
FULL OUTER JOIN table2
ON table1.column = table2.column;
```
其中,table1 和 table2 是要合并的两个表格,column 是两个表格中要匹配的列。FULL OUTER JOIN 表示会将两个表格中所有的记录都包含进来。
例如,我们有两个表格 sales 和 customers:
sales 表格
| id | product | price |
|----|---------|-------|
| 1 | Apple | 1.50 |
| 2 | Orange | 2.00 |
| 3 | Banana | 0.50 |
| 4 | Pear | 1.20 |
customers 表格
| id | name | city |
|----|--------|---------|
| 1 | Alice | New York|
| 2 | Bob | London |
| 3 | Carol | Paris |
| 4 | David | Tokyo |
| 5 | Emily | Sydney |
现在我们想要将这两个表格合并起来,我们可以使用 FULL JOIN:
```sql
SELECT *
FROM sales
FULL OUTER JOIN customers
ON sales.id = customers.id;
```
这将会产生以下结果:
| id | product | price | name | city |
|----|---------|-------|--------|---------|
| 1 | Apple | 1.50 | Alice | New York|
| 2 | Orange | 2.00 | Bob | London |
| 3 | Banana | 0.50 | Carol | Paris |
| 4 | Pear | 1.20 | David | Tokyo |
| 5 | NULL | NULL | Emily | Sydney |
可以看到,FULL JOIN 将两个表格中所有的记录都合并了起来。对于两个表格中有匹配的记录,它们会被合并成一行;对于两个表格中没有匹配的记录,它们的值会被设置为 NULL。在上面的例子中,id 为 5 的记录在 sales 表格中不存在,因此在结果中它的 product 和 price 的值都是 NULL。