介绍一下union all和union的区别,用二维表展示
时间: 2023-07-04 16:29:13 浏览: 74
数据库设计和开发(北邮软件学院研究生讲义)menu.docx
好的,这也是一个很常见的 SQL 问题。让我来解答你的问题。
首先,让我们来定义这两个操作:
- UNION:合并两个或多个 SELECT 语句的结果集,返回的结果集中不包含重复行。
- UNION ALL:合并两个或多个 SELECT 语句的结果集,返回的结果集中包含重复行。
接下来,我将用一个二维表来展示这两个操作的区别。假设有两个表 A 和 B,它们的结构如下:
表 A:
| id | name |
|----|------|
| 1 | Tom |
| 2 | Alex |
| 3 | Jack |
表 B:
| id | name |
|----|------|
| 1 | Tom |
| 4 | Carl |
接下来,我们将用这两个表来展示 UNION 和 UNION ALL 的区别。
1. UNION
UNION 合并两个 SELECT 语句的结果集,返回的结果集中不包含重复行。对于表 A 和表 B,执行以下 SQL 语句:
```
SELECT id, name FROM A
UNION
SELECT id, name FROM B
```
返回的结果集如下,可以看到 id 为 1 的数据只出现了一次。
| id | name |
|----|------|
| 1 | Tom |
| 2 | Alex |
| 3 | Jack |
| 4 | Carl |
2. UNION ALL
UNION ALL 合并两个 SELECT 语句的结果集,返回的结果集中包含重复行。对于表 A 和表 B,执行以下 SQL 语句:
```
SELECT id, name FROM A
UNION ALL
SELECT id, name FROM B
```
返回的结果集如下,可以看到 id 为 1 的数据出现了两次。
| id | name |
|----|------|
| 1 | Tom |
| 2 | Alex |
| 3 | Jack |
| 1 | Tom |
| 4 | Carl |
阅读全文