Union 和 Union ALL 的区别

.

.

.

.

.

Union 与 Union ALL 的作用都是合并 SELECT 的查询结果集,那么它们有什么不同呢?

Union 将查询到的结果集合并后进行重查,将其中相同的行去除。缺点:效率低;

而Union ALL 则只是合并查询的结果集,并不重新查询,效率高,但是可能会出现冗余数据。

我们举个例子来说明一下:

比如数据库中有两张表 tab1 和 tab2。

tab1 中的数据有:

小王
小张

tab2 中的数据有:

小王
小李

执行查询:

1 SELECT * FROM tab1 UNION SELECT * FROM tab2

结果如下:

小王
小张
小李

如果执行如下查询:

1 SELECT * FROM tab1 UNION ALL SELECT * FROM tab2

则结果如下:

小王
小张
小王
小李

这回看出来有什么不同了吧?

原文地址:https://www.cnblogs.com/0xcafebabe/p/2521026.html