首頁
云原生數(shù)據(jù)倉庫AnalyticDB
云原生數(shù)據(jù)倉庫AnalyticDB MySQL版
開發(fā)參考
SQL手冊
DQL
SELECT
UNION、INTERSECT和EXCEPT
UNION、INTERSECT和EXCEPT
更新時間:
UNION
、INTERSECT
和EXCEPT
用于將多個查詢結果集進行組合,從而得到一個最終結果。
語法
query
{ UNION [ ALL ] | INTERSECT | EXCEPT }
query
參數(shù)
UNION
:返回兩個查詢表達式的集合運算。UNION ALL
:ALL
關鍵字用于保留UNION
中產(chǎn)生的重復行。INTERSECT
:返回只有在兩個集合中同時出現(xiàn)的行,返回結果將刪除兩個集合中的重復行。EXCEPT
:先刪除兩個集合中重復的數(shù)據(jù)行,返回只在第一個集合中出現(xiàn)且不在第二個集合中出現(xiàn)的所有行。
計算順序
UNION
和EXCEPT
集合運算符為左關聯(lián),如果未使用圓括號來改變計算順序,則按照從左到右的順序進行集合運算。例如,以下查詢中,首先計算
T1
和T2
的UNION
,然后對UNION
結果執(zhí)行EXCEPT
操作。select * from t1 union select * from t2 except select * from t3 order by c1;
在同一查詢中,組合使用集合運算符時,
INTERSECT
運算符優(yōu)先于UNION
和EXCEPT
運算符。例如,以下查詢先計算
T2
和T3
的交集,然后將計算得到的結果與T1
進行并集。select * from t1 union select * from t2 intersect select * from t3 order by c1;
可以使用圓括號改變集合運算符的計算順序。
以下示例中,將
T1
和T2
的并集結果與T3
執(zhí)行交集運算。(select * from t1 union select * from t2) intersect (select * from t3) order by c1;
文檔內(nèi)容是否對您有幫助?