No hay necesidad de corchetes/paréntesis en una declaración UNION.
MySQL es el único que conozco en este momento, que le permite definir ORDER BY
y LIMIT
cláusulas específicas para cada consulta siempre que la consulta esté entre corchetes; el SQL estándar solo permite un ORDER BY
para el resultado final. El GROUP BY
y HAVING
Las cláusulas son específicas para cada consulta que compone la instrucción UNION.
MySQL admite:
(SELECT a.column
FROM A_TABLE a
ORDER BY a.column DESC)
UNION
SELECT b.column
FROM B_TABLE b
...lo que causará un sinfín de problemas si desea/necesita migrar a otras bases de datos.
SQL estándar solo permite:
SELECT a.column
FROM A_TABLE a
UNION
SELECT b.column
FROM B_TABLE b
ORDER BY column DESC