1. 程式人生 > >ERROR 1221 (HY000): Incorrect usage of UNION and ORDER BY

ERROR 1221 (HY000): Incorrect usage of UNION and ORDER BY

union和union all區別

UNION會把兩個查詢語句的結果集合並起來。
union會過濾掉兩個結果集中重複的行,而union all不會過濾掉重複行。

union order

union兩個帶orderselect的時候,會報錯。

ERROR 1221 (HY000): Incorrect usage of UNION and ORDER BY

解決方法就是使用括號,把兩個SELECT括起來。
例如:

(SELECT A,B,C FROM `s` ORDER BY A DESC) 
UNION 
(SELECT A,B,C FROM `r` ORDER
BY B DESC);

或用SELECT AS TABLE

SELECT * FROM 
(SELECT A,B,C FROM `s` ORDER BY A DESC)
 AS t1 
 UNION 
 SELECT A,B,C FROM `r` ORDER BY B DESC;