union和union+all的区别
时间: 2023-12-21 13:29:23 浏览: 129
数据库中union 与union all 的区别
union和union all的区别在于是否去重。具体来说,union会自动去重,而union all则不会去重,会将所有结果都显示出来。
以下是两个例子来说明它们的区别:
1.使用union去重
假设我们有两个表,分别是table1和table2,它们的数据如下:
table1:
| id | name |
|----|------|
| 1 | Tom |
| 2 | Jack |
| 3 | Mary |
table2:
| id | name |
|----|--------|
| 2 | Jack |
| 4 | Alice |
| 5 | Robert |
如果我们使用union操作来合并这两个表,那么结果如下:
```sql
SELECT id, name FROM table1
UNION
SELECT id, name FROM table2;
```
结果:
| id | name |
|----|--------|
| 1 | Tom |
| 2 | Jack |
| 3 | Mary |
| 4 | Alice |
| 5 | Robert |
可以看到,结果中去掉了重复的Jack。
2.使用union all不去重
如果我们使用union all操作来合并这两个表,那么结果如下:
```sql
SELECT id, name FROM table1
UNION ALL
SELECT id, name FROM table2;
```
结果:
| id | name |
|----|--------|
| 1 | Tom |
| 2 | Jack |
| 3 | Mary |
| 2 | Jack |
| 4 | Alice |
| 5 | Robert |
可以看到,结果中保留了重复的Jack。
阅读全文