union和union all均为拼接查询结果,不同点在于union会对结果去重,而union all不会对结果去重。
如果不需要去重时,建议使用union all,因为union会对两个或多个sql查询结果去重,这一过程可能会引发内存问题。
必须去重时,建议使用distinct+union all 代替union。
eg:
select 'a'
union
select 'a'
>output:
a
eg:
select 'a'
union all
select 'a'
>output:
a
a