Não há necessidade de colchetes/parênteses em uma instrução UNION.
MySQL é o único que conheço neste momento, que permite definir
ORDER BY
e LIMIT
cláusulas específicas para cada consulta, desde que a consulta esteja entre colchetes -- o SQL padrão permite apenas um ORDER BY
para o resultado final. O GROUP BY
e HAVING
As cláusulas são específicas para cada consulta que compõe a instrução UNION'd. O MySQL suporta:
(SELECT a.column
FROM A_TABLE a
ORDER BY a.column DESC)
UNION
SELECT b.column
FROM B_TABLE b
...o que causará uma dor sem fim se você quiser/precisar portar para outros bancos de dados.
O SQL padrão permite apenas:
SELECT a.column
FROM A_TABLE a
UNION
SELECT b.column
FROM B_TABLE b
ORDER BY column DESC