UNION
是 SQL 中的一个操作符,用于将两个或多个 SELECT
语句的结果合并成一个结果集。使用 UNION
时,以下规则需要遵守:
- 每个
SELECT
语句必须有相同数量的列。 - 每个
SELECT
语句中的列必须具有相似的数据类型。 - 每个
SELECT
语句的结果列顺序必须相同。 - 默认情况下,
UNION
会去除重复的行,只保留唯一的行。如果需要包含重复行,可以使用UNION ALL
。
SQL UNION
语法
SELECT column1, column2, ...
FROM table1
UNION
SELECT column1, column2, ...
FROM table2;
代码示例
假设我们有两个表:employees
和 managers
。
employees 表:
+----+----------+
| id | name |
+----+----------+
| 1 | John |
| 2 | Jane |
| 3 | Mike |
+----+----------+
managers 表:
+----+----------+
| id | name |
+----+----------+
| 4 | Alice |
| 5 | Bob |
+----+----------+
现在,我们想要合并这两个表中的所有员工和经理的名字。
SELECT id, name FROM employees
UNION
SELECT id, name FROM managers;
这个查询的结果将是:
+----+----------+
| id | name |
+----+----------+
| 1 | John |
| 2 | Jane |
| 3 | Mike |
| 4 | Alice |
| 5 | Bob |
+----+----------+
注意,如果 employees
表和 managers
表中有相同的 id
,那么结果集中只会包含一个这样的行,因为 UNION
默认去除了重复的行。
如果你想要包含所有行,包括重复的行,可以使用 UNION ALL
:
SELECT id, name FROM employees
UNION ALL
SELECT id, name FROM managers;