首先,union和unionall都是用來合併兩個或兩個以上select sql語句的操作符,
區別在於union去重,而union all會列出所有結果包括重複的。
下面來看看具體例子:
union 操作符用於合併兩個或多個 select 語句的結果集。
請注意,union 內部的 select 語句必須擁有相同數量的列。列也必須擁有相似的資料型別。同時,每條 select 語句中的列的順序必須相同。
select column_name(s) from table_name1注釋:預設地,union 操作符選取不同的值。如果允許重複的值,請使用 union all。union
select column_name(s) from table_name2
select column_name(s) from table_name1另外,union 結果集中的列名總是等於 union 中第乙個 select 語句中的列名。union all
select column_name(s) from table_name2
e_id
e_name
01zhang, hua
02wang, wei
03carter, thomas
04yang, ming
e_id
e_name
01adams, john
02bush, george
03carter, thomas
04gates, bill
列出所有在中國和美國的不同的雇員名:
select e_name from employees_chinaunion
select e_name from employees_usa
e_name
zhang, hua
wang, wei
carter, thomas
yang, ming
adams, john
bush, george
gates, bill
注釋:這個命令無法列出在中國和美國的所有雇員。在上面的例子中,我們有兩個名字相同的雇員,他們當中只有乙個人被列出來了。union 命令只會選取不同的值。
union all 命令和 union 命令幾乎是等效的,不過 union all 命令會列出所有的值。
sql statement 1union all
sql statement 2
列出在中國和美國的所有的雇員:
select e_name from employees_chinaunion all
select e_name from employees_usa
e_name
zhang, hua
wang, wei
carter, thomas
yang, ming
adams, john
bush, george
carter, thomas
gates, bill
UNION 和UNION ALL 的區別
在資料庫中,union 和union all 關鍵字都是將兩個結果集合並為乙個,但這兩者從使用和效率上來說都有所不同。union 在進行表鏈結後會篩選掉重複的記錄,所以在表鏈結後會對所產生的結果集進行排序運算,刪除重複的記錄再返回結果。實際大部分應用中是不會產生重複的記錄,最常見的是過程表與歷史表 ...
UNION和UNION ALL的區別
關鍵字 union 和union all 的區別 出處 在資料庫中,union和union all關鍵字都是將兩個結果集合並為乙個,但這兩者從使用和效率上來說都有所不同。union在進行表鏈結後會篩選掉重複的記錄,所以在表鏈結後會對所產生的結果集進行排序運算,刪除重複的記錄再返回結果。實際大部分應用...
UNION 和UNION ALL 的區別
在資料庫中,union 和union all 關鍵字都是將兩個結果集合並為乙個,但這兩者從使用和效率上來說都有所不同。union 在進行表鏈結後會篩選掉重複的記錄,所以在表鏈結後會對所產生的結果集進行排序運算,刪除重複的記錄再返回結果。實際大部分應用中是不會產生重複的記錄,最常見的是過程表與歷史表 ...