union指令的目的是將兩個sql語句的結果合併起來。從這個角度來看, 我們會產生這樣的感覺,union跟join似乎有些許類似,因為這兩個指令都可以由多個**中擷取資料。 union的乙個限制是兩個sql語句所產生的字段需要是同樣的資料種類。另外,當我們用 union這個指令時,我們只會看到不同的資料值 (類似 select distinct)。 union只是將兩個結果聯結起來一起顯示,並不是聯結兩個表。
假設我們有以下的兩個**:
store_information 表: store_name sales date
los angeles $1500 jan-05-1999
san diego $250 jan-07-1999
los angeles $300 jan-08-1999
boston $700 jan-08-1999
internet sales 表: date sales
jan-07-1999 $250
jan-10-1999 $535
jan-11-1999 $320
jan-12-1999 $750
如果我們要找出來所有有營業額 (sales) 的日子。要達到這個目的,我們用以下的 sql 語句:
select date from store_information
union
select date from internet_sales
結果:
date
jan-05-1999
jan-07-1999
jan-08-1999
jan-10-1999
jan-11-1999
jan-12-1999
union在進行表鏈結後會篩選掉重複的記錄,所以在表鏈結後會對所產生的結果集進行排序運算,刪除重複的記錄再返回結果。
union all 這個指令的目的也是要將兩個 sql 語句的結果合併在一起。 union all 和 union 不同之處在於 union all 會將每一筆符合條件的資料都列出來,無論資料值有無重複。
如果上述的例子我們只用union all的話,則結果會是:
date
jan-05-1999
jan-07-1999
jan-08-1999
jan-08-1999
jan-07-1999
jan-10-1999
jan-11-1999
jan-12-1999
union all只是簡單的將兩個結果合併後就返回。這樣,如果返回的兩個結果集中有重複的資料,那麼返回的結果集就會包含重複的資料了。
從效率上說,sql union all的執行效率要比sql union效率要高很多,這是因為,使用sql union需要進行排重,而sql union all 是不需要排重的,這一點非常重要,因為對於一些單純地使用分表來提高效率的查詢,完全可以使用sql union all。
資料分析之sql UNION與UNION ALL
union操作符用於合併兩個或多個select語句的結果集。注意 union內部的select語句必須擁有相同數量的列。列也必須擁有相似的資料型別。同時,每條select語句中的列的順序必須相同。sql union語法 select column name s from table name1 un...
SQL Union和Union All的使用方法
union指令的目的是將兩個sql語句的結果合併起來。從這個角度來看,我們會產生這樣的感覺,union跟join似乎有些許類似,因為這兩個指令都可以由多個 中擷取資料。union的乙個限制是兩個 sql 語句所產生的字段需要是同樣的資料種類。另外,當我們用 union這個指令時,我們只會看到不同的資...
sql union和union all的用法及效率
一 union指令的目的是將兩個sql語句的結果合併起來。假設我們有以下的兩個 store information 表 store name sales date los angeles 1500 jan 05 1999 san diego 250 jan 07 1999 los angeles 3...