Sql中union和union all的区别
时间: 2023-10-31 07:30:49 浏览: 89
UNION和UNION ALL都是用于将两个或多个SELECT语句的结果集合并在一起的操作符。
UNION和UNION ALL的区别在于:
1. UNION会去除重复的行,而UNION ALL不会去除重复的行,即UNION ALL会将重复的行也合并在一起。
2. 因为UNION需要对结果集进行去重操作,所以它的执行效率会比UNION ALL低。
举个例子:
假设有两个表A和B:
表A:
id | name | age
---|------|----
1 | Tom | 20
2 | Jack | 21
3 | Mary | 22
表B:
id | name | age
---|------|----
1 | Tom | 20
4 | Lily | 23
5 | Lucy | 24
使用UNION操作:
SELECT id, name, age FROM A
UNION
SELECT id, name, age FROM B;
结果为:
id | name | age
---|------|----
1 | Tom | 20
2 | Jack | 21
3 | Mary | 22
4 | Lily | 23
5 | Lucy | 24
使用UNION ALL操作:
SELECT id, name, age FROM A
UNION ALL
SELECT id, name, age FROM B;
结果为:
id | name | age
---|------|----
1 | Tom | 20
2 | Jack | 21
3 | Mary | 22
1 | Tom | 20
4 | Lily | 23
5 | Lucy | 24
可以看出,使用UNION操作去重之后,结果集只包含一条id为1的记录,而使用UNION ALL操作则将两个表中的id为1的记录都合并了起来。
阅读全文