Union 語法
select_statement UNION ALL select_statement UNION ALL select_statement ...
UNION用於聯合多個SELECT語句的結果集,合並為一個獨立的結果集。當前只能支持UNION ALL(bag union)。不消除重復行。每個select語句返回的列的數量和名字必須一樣,否則,一個語法錯誤會被拋出。
如果必須對UNION的結果做一些額外的處理,整個語句可以被嵌入在FROM子句中,象下面這樣
SELECT *
FROM (
select_statement
UNION ALL
select_statement
) unionResult
例如,如果我們假設有兩個不同的表來跟蹤哪個用戶發布視頻哪個用戶發表了評論,以下的查詢結果,聯合所有的用戶表,為用戶所有視頻發布和評論發布事件,創建一個單一的注釋流。
SELECT u.id, actions.date FROM ( SELECT av.uid AS uid FROM action_video av WHERE av.date = '2008-06-03' UNION ALL SELECT ac.uid AS uid FROM action_comment ac WHERE ac.date = '2008-06-03' ) actions
JOIN users u ON (u.id = actions.uid)
翻譯自 https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Union