`UNION` 是 SQL 中的一个操作符,用于将两个或多个 `SELECT` 语句的结果合并成一个结果集。使用 `UNION` 时,以下规则需要遵守:
1. 每个 `SELECT` 语句必须有相同数量的列。
2. 每个 `SELECT` 语句中的列必须具有相似的数据类型。
3. 每个 `SELECT` 语句的结果列顺序必须相同。
4. 默认情况下,`UNION` 会去除重复的行,只保留唯一的行。如果需要包含重复行,可以使用 `UNION ALL`。
### SQL `UNION` 语法
```sql
SELECT column1, column2, ...
FROM table1
UNION
SELECT column1, column2, ...
FROM table2;
```
### 代码示例
假设我们有两个表:`employees` 和 `managers`。
**employees 表**:
```plaintext
+----+----------+
| id | name |
+----+----------+
| 1 | John |
| 2 | Jane |
| 3 | Mike |
+----+----------+
```
**managers 表**:
```plaintext
+----+----------+
| id | name |
+----+----------+
| 4 | Alice |
| 5 | Bob |
+----+----------+
```
现在,我们想要合并这两个表中的所有员工和经理的名字。
```sql
SELECT id, name FROM employees
UNION
SELECT id, name FROM managers;
```
这个查询的结果将是:
```plaintext
+----+----------+
| id | name |
+----+----------+
| 1 | John |
| 2 | Jane |
| 3 | Mike |
| 4 | Alice |
| 5 | Bob |
+----+----------+
```
注意,如果 `employees` 表和 `managers` 表中有相同的 `id`,那么结果集中只会包含一个这样的行,因为 `UNION` 默认去除了重复的行。
如果你想要包含所有行,包括重复的行,可以使用 `UNION ALL`:
```sql
SELECT id, name FROM employees
UNION ALL
SELECT id, name FROM managers;
```
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。