一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Mysql - 淺析mysql union和union all

淺析mysql union和union all

2020-08-15 21:47動力節點 Mysql

union 是對數據進行并集操作,不包括重復行,同時進行默認排序而Union all 是對數據進行并集操作,包括重復行,不進行排序,下面給大家詳細介紹mysql union和union all,感興趣的朋友一起看看吧

在數據庫中,UNION和UNION ALL關鍵字都是將兩個結果集合并為一個,但這兩者從使用和效率上來說都有所不同。

MySQL中的UNION

UNION在進行表鏈接后會篩選掉重復的記錄,所以在表鏈接后會對所產生的結果集進行排序運算,刪除重復的記錄再返回結果。實際大部分應用中是不會產生重復的記錄,最常見的是過程表與歷史表UNION。如:

?
1
select * from gc_dfys union select * from ls_jg_dfys

這個SQL在運行時先取出兩個表的結果,再用排序空間進行排序刪除重復的記錄,最后返回結果集,如果表數據量大的話可能會導致用磁盤進行排序。 

MySQL中的UNION ALL

而UNION ALL只是簡單的將兩個結果合并后就返回。這樣,如果返回的兩個結果集中有重復的數據,那么返回的結果集就會包含重復的數據了。

從效率上說,UNION ALL 要比UNION快很多,所以,如果可以確認合并的兩個結果集中不包含重復的數據的話,那么就使用UNION ALL,如下:

?
1
select * from gc_dfys union all select * from ls_jg_dfys

使用Union,則所有返回的行都是唯一的,如同您已經對整個結果集合使用了DISTINCT

使用Union all,則不會排重,返回所有的行

如果您想使用ORDER BY或LIMIT子句來對全部UNION結果進行分類或限制,則應對單個地SELECT語句加圓括號,并把ORDER BY或LIMIT放到最后一個的后面:

?
1
2
3
4
(SELECT a FROM tbl_name WHERE a=10 AND B=1)
UNION
(SELECT a FROM tbl_name WHERE a=11 AND B=2)
ORDER BY a LIMIT 10;

麻煩一點也可以這么干:

?
1
2
3
select userid from (
select userid from testa union all select userid from testb) t
order by userid limit 0,1;

如果你還想group by,而且還有條件,那么:

?
1
select userid from (select userid from testa union all select userid from testb) t group by userid having count(userid) = 2;

注意:在union的括號后面必須有個別名,否則會報錯

當然了,如果當union的幾個表的數據量很大時,建議還是采用先導出文本,然后用腳本來執行

因為純粹用sql,效率會比較低,而且它會寫臨時文件,如果你的磁盤空間不夠大,就有可能會出錯

?
1
Error writing file '/tmp/MYLsivgK' (Errcode: 28)

總結

以上所述是小編給大家介紹的mysql union和union all,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!

原文鏈接:http://blog.sina.com.cn/s/blog_9c6852670102wx89.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 免费看日产一区二区三区 | 精品无人区乱码1区2区3区在线 | 美女被的在线网站91 | 亚洲国产情侣一区二区三区 | 欧美日韩在线成人看片a | narutotsunade全彩雏田 | 国产成+人+综合+亚洲不卡 | 日本阿v精品视频在线观看 日本xxx片免费高清在线 | 成人午夜影院在线观看 | 亚洲一成人毛片 | 精品一区二区三区在线播放 | 人与善xuanwen在线400 | 女同学用白丝脚玩我的故事 | videojapan日本孕交孕 | 国产日韩欧美成人 | 任我鲁精品视频精品 | 欧美性xxxxxx爱 | 天堂在线中文字幕 | 日韩欧美中文字幕出 | 娇小XXXXX第一次出血 | 精品日本三级在线观看视频 | 男人的天堂久久精品激情 | 国产香蕉97碰碰在线视频 | 91香蕉影院 | 久久无码人妻AV精品一区 | 暗卫调教女主肉高h | 色悠久久久久综合欧美99 | 成年人在线播放视频 | 97久久久亚洲综合久久88 | 亚洲酒色1314狠狠做 | 亚洲欧美国产精品久久久 | 色五月天天 | ts人妖国产一区 | 双性总裁被调教1v1 双性双根 | 色小孩导航| 久久两性视频 | 视频一区久久 | 久久成人免费大片 | 超强台风免费观看完整版视频 | 亚洲系列第一页 | 日韩久久影院 |