mysql union 跟 union all

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章