SELECT *FROM table1FULL JOIN table2ON table1.column = table2.colum">

mysql full join用法

来源:这里教程网 时间:2026-02-28 18:16:12 作者:

MySQL FULL JOIN 用法

问题:什么是 FULL JOIN?

回答: FULL JOIN 是一种连接操作符,它返回两个表中所有匹配的行以及不匹配的行。换句话说,它返回笛卡尔积,并用 NULL 值填充缺失的行。

用法:

语法如下:

<code class="sql">SELECT *
FROM table1
FULL JOIN table2
ON table1.column = table2.column;</code>

特点:

返回两个表中所有行,包括不匹配的行。 对于不匹配的行,缺失的列值将被填充为 NULL。 FULL JOIN 是最全面的连接类型,因为它保证返回所有行。

何时使用:

FULL JOIN 通常用于以下情况:

当需要检索两个表中所有行时,即使存在不匹配。 当ต้องการ维护表之间的关系时,即使这些关系并不总是显式定义。 当需要查找不匹配的行时,例如查找在另一个表中没有记录的记录。

示例:

假设我们有两个表:

<code>table1:
+----+--------+
| id | name    |
+----+--------+
| 1  | John    |
| 2  | Mary    |
| 3  | Bob     |
+----+--------+
table2:
+----+--------+
| id | address |
+----+--------+
| 1  | 123 Main St |
| 2  | 456 Elm St  |
| 4  | 789 Oak St  |
+----+--------+</code>

执行以下 FULL JOIN 查询:

<code class="sql">SELECT *
FROM table1
FULL JOIN table2
ON table1.id = table2.id;</code>

结果:

<code>+----+--------+----+--------+
| id | name    | id | address |
+----+--------+----+--------+
| 1  | John    | 1  | 123 Main St |
| 2  | Mary    | 2  | 456 Elm St  |
| 3  | Bob     | NULL | NULL      |
| NULL | NULL      | 4  | 789 Oak St  |
+----+--------+----+--------+</code>

结果集包含两个表的所有行,包括不匹配行(id=3 和 id=4)。对于不匹配的行,address 列填充为 NULL。

相关推荐