記錄合併 union和union all 的區別

2021-08-07 09:25:49 字數 986 閱讀 4353

原文章  :

在資料庫中,unionunion all關鍵字都是將兩個結果集合並為乙個,但這兩者從使用和效率上來說都有所不同。

union在進行表鏈結後會篩選掉重複的記錄,所以在表鏈結後會對所產生的結果集進行排序運算,刪除重複的記錄再返回結果。

如: select * from test_union1 

union 

select * from test_union2 

這個sql在執行時先取出兩個表的結果,再用排序空間進行排序刪除重複的記錄,最後返回結果集,如果表資料量大的話可能會導致用磁碟進行排序。 

union all只是簡單的將兩個結果合併後就返回。這樣,如果返回的兩個結果集中有重複的資料,那麼返回的結果集就會包含重複的資料了。 

從效率上說,union all要比union快很多,所以,如果可以確認合併的兩個結果集中不包含重複的資料的話,那麼就使用union all,如下: 

select * from test_union1 

union all 

select * from test_union2 

使用 union 組合查詢的結果集有兩個最基本的規則:

1。所有查詢中的列數和列的順序必須相同。

2。資料型別必須相容

記錄合併 union和union all 的區別

union在進行表鏈結後會篩選掉重複的記錄,所以在表鏈結後會對所產生的結果集進行排序運算,刪除重複的記錄再返回結果。如 select from test union1 union select from test union2 這個sql在執行時先取出兩個表的結果,再用排序空間進行排序刪除重複的記錄...

記錄合併 union和union all 的區別

在資料庫中,union和union all關鍵字都是將兩個結果集合並為乙個,但這兩者從使用和效率上來說都有所不同。union在進行表鏈結後會篩選掉重複的記錄,所以在表鏈結後會對所產生的結果集進行排序運算,刪除重複的記錄再返回結果。如 select from test union1 union sel...

union 聯合 合併查詢結果

select id,name,price from shops where price 150 union select id,name,price from shops where price 50 作用 把兩次或多次查詢結果合併在一起,可以來自多張表,多次sql 語句時取出的列明不同,此時以第乙...