mysql中UNION ALL使用解释及详细示例
时间: 2024-05-14 16:18:06 浏览: 91
MySQL中UNION与UNION ALL的基本使用方法
UNION ALL 是 MySQL 中的一个关键词,用于将两个或多个 SELECT 语句的结果集合并成一个结果集。与 UNION 不同的是,UNION ALL 不会去重,因此可以保留重复的行。
使用语法:
```sql
SELECT column1, column2, ... FROM table1 WHERE condition1
UNION ALL
SELECT column1, column2, ... FROM table2 WHERE condition2;
```
其中,UNION ALL 连接的 SELECT 语句必须具有相同的列数和数据类型。如果两个 SELECT 语句的结果集中列的顺序不同,则需要使用别名来重新命名列。
示例:
假设有两个表 t1 和 t2,分别包含以下数据:
t1:
| id | name | age |
| -- | ----- | --- |
| 1 | Alice | 20 |
| 2 | Bob | 30 |
| 3 | Carol | 25 |
t2:
| id | name | age |
| -- | ------ | --- |
| 4 | David | 22 |
| 5 | Alice | 20 |
| 6 | Edward | 29 |
现在,我们可以使用 UNION ALL 将这两个表的数据合并为一个结果集:
```sql
SELECT id, name, age FROM t1
UNION ALL
SELECT id, name, age FROM t2;
```
执行结果:
| id | name | age |
| -- | ------ | --- |
| 1 | Alice | 20 |
| 2 | Bob | 30 |
| 3 | Carol | 25 |
| 4 | David | 22 |
| 5 | Alice | 20 |
| 6 | Edward | 29 |
注意,UNION ALL 不会去重,因此结果集中包含了两个 name 为 Alice 的行。如果使用 UNION 关键词代替 UNION ALL,则结果集中将只包含一个 name 为 Alice 的行。
阅读全文