mysql中union的用法是什么

mysql中,union用于將多個select語句的結果組合到一個結果集中,并刪除結果集中的重復數據,語法為“select column,…from table1 union select column,…from table2”。

mysql中union的用法是什么

本教程操作環境: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?常用與數據類似的兩張或多張表查詢,如不同的數據分類表,或者是數據歷史表等,下面是用于測試的兩張表;

mysql中union的用法是什么

?2.1使用?UNION?查詢

查詢兩張表中的文章?id?號及標題,并去掉重復記錄:

SELECT?aid,title?FROM?article?UNION?SELECT?bid,title?FROM?blog

返回查詢結果如下:

mysql中union的用法是什么

2.2.UNION?查詢結果說明

重復記錄是指查詢中各個字段完全重復的記錄,如上例,若?title?一樣但?id?號不一樣算作不同記錄。

第一個?SELECT?語句中被使用的字段名稱也被用于結果的字段名稱,如上例的?aid。

各?SELECT?語句字段名稱可以不同,但字段屬性必須一致。

3.使用?UNION?ALL?查詢

查詢兩張表中的文章?id?號及標題,并返回所有記錄:

SELECT?aid,title?FROM?article?UNION?ALL?SELECT?bid,title?FROM?blog

返回查詢結果如下:

mysql中union的用法是什么

顯然,使用?UNION?ALL?的時候,只是單純的把各個查詢組合到一起而不會去判斷數據是否重復。因此,當確定查詢結果中不會有重復數據或者不需要去掉重復數據的時候,應當使用?UNION?ALL?以提高查詢效率。

推薦學習:mysql視頻教程

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊10 分享