首页 >数据库 >mysql教程 >JOIN 与 UNION:这些数据库操作有何不同?

JOIN 与 UNION:这些数据库操作有何不同?

Susan Sarandon
Susan Sarandon原创
2025-01-15 09:06:43244浏览

JOIN vs. UNION: How Do These Database Operations Differ?

深入理解数据库操作:JOIN与UNION的差异

数据库查询中,JOIN和UNION是两种基本的表连接操作。虽然两者都涉及到组合多个表中的行,但它们的方法和结果却大相径庭。

JOIN和UNION的区别

JOIN:

  • 执行指定表所有行的笛卡尔积(交叉连接)。
  • 基于指定的条件(连接条件)过滤结果数据集。
  • 通过组合匹配或相关行中的列来创建新行。

UNION:

  • 连接指定表中的行,保留重复项。
  • 不创建新行或操作数据。
  • 输出包含每个表中的所有行,垂直排列。

示例:

以下示例说明了JOIN和UNION的区别:

<code>表 A:
+----+
| id | name |
+----+
| 1  | John |
| 2  | Mary |
+----+

表 B:
+----+
| id | city |
+----+
| 1  | London |
| 2  | Paris |
+----+</code>

JOIN:

<code>SELECT *
FROM 表A
JOIN 表B ON 表A.id = 表B.id;</code>

结果:

<code>+----+------+----+--------+
| id | name | id | city    |
+----+------+----+--------+
| 1  | John | 1  | London  |
| 2  | Mary | 2  | Paris   |
+----+------+----+--------+</code>

UNION:

<code>SELECT *
FROM 表A
UNION
SELECT *
FROM 表B;</code>

结果:

<code>+----+------+
| id | name |
+----+------+
| 1  | John |
| 2  | Mary |
| 1  | London |
| 2  | Paris |
+----+------+</code>

很明显,JOIN生成一个更小、更精细的数据集,只包含匹配的行,而UNION组合所有行,包括重复项。

以上是JOIN 与 UNION:这些数据库操作有何不同?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn