前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布

UNION

原创
作者头像
Yolo-Yolo
发布2024-11-08 09:06:39
670
发布2024-11-08 09:06:39

`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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档