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和union all關鍵字都是將兩個結果集合並為乙個,但這兩者從使用和效率上來說都有所不同。union在進行表鏈結後會篩選掉重複的記錄,所以在表鏈結後會對所產生的結果集進行排序運算,刪除重複的記錄再返回結果。如 select from test union1 union...
記錄合併 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 語句時取出的列明不同,此時以第乙...