mysql中,union用于將多個select語句的結果組合到一個結果集中,并刪除結果集中的重復數據,語法為“select column,…from table1 union select column,…from table2”。
本教程操作環境:windows10系統、mysql8.0.22版本、Dell G3電腦。
mysql中union的用法是什么
1.mysql???union??語法
mysql???union?用于把來自多個select??語句的結果組合到一個結果集合中。語法為:
select??column,......from?table1 union?[all] select??column,......?from?table2 ...
在多個select??語句中,對應的列應該具有相同的字段屬性,且第一個select?語句中被使用的字段名稱也被用于結果的字段名稱。
1.1?union??與?union?all?的區別
當使用union??時,mysql?會把結果集中重復的記錄刪掉,而使用union??all?,mysql?會把所有的記錄返回,且效率高于union?。
2.?mysql?union??用法示例
union?常用與數據類似的兩張或多張表查詢,如不同的數據分類表,或者是數據歷史表等,下面是用于測試的兩張表;
?2.1使用?UNION?查詢
查詢兩張表中的文章?id?號及標題,并去掉重復記錄:
SELECT?aid,title?FROM?article?UNION?SELECT?bid,title?FROM?blog
返回查詢結果如下:
2.2.UNION?查詢結果說明
重復記錄是指查詢中各個字段完全重復的記錄,如上例,若?title?一樣但?id?號不一樣算作不同記錄。
第一個?SELECT?語句中被使用的字段名稱也被用于結果的字段名稱,如上例的?aid。
各?SELECT?語句字段名稱可以不同,但字段屬性必須一致。
3.使用?UNION?ALL?查詢
查詢兩張表中的文章?id?號及標題,并返回所有記錄:
SELECT?aid,title?FROM?article?UNION?ALL?SELECT?bid,title?FROM?blog
返回查詢結果如下:
顯然,使用?UNION?ALL?的時候,只是單純的把各個查詢組合到一起而不會去判斷數據是否重復。因此,當確定查詢結果中不會有重復數據或者不需要去掉重復數據的時候,應當使用?UNION?ALL?以提高查詢效率。
推薦學習:mysql視頻教程