1.union 多個表的時候,每個表有group by的情況下,可以過濾重複的數據
2.union all 多個表的時候 ,每個表都有group by的情況下也不過濾重複數據
舉個例子:
現在有兩個表,user表根據passport字段group by 共有 a b c d 四條數據
user_b 表根據passport字段group by 共有 a b c d e 五條數據
union 去重集合,user表跟user_b根據passport字段去重
結果是 a b c d + a b c d e的集合去重就是 a b c d e
select count(*) from (
(select passport from `user` group by passport)
union
(select passport from `user_b` group by passport)
) as x
union all 並集,如果需要a+b的並集是:結果4 + 5 = 9
結果是 a b c d + a b c d e的集合不去重就是a b c d a b c d e = 9
select count(*) from (
(select passport from `user` group by passport)
union all
(select passport from `user_b` group by passport)
) as x