Il n'y a pas besoin de crochets/parenthèses dans une instruction UNION.
MySQL est le seul que je connaisse pour le moment, qui vous permet de définir ORDER BY
et LIMIT
clauses spécifiques à chaque requête tant que la requête est entre parenthèses -- le SQL standard n'autorise qu'un ORDER BY
pour le résultat final. Le GROUP BY
et HAVING
les clauses sont spécifiques à chaque requête qui compose l'instruction UNION'd.
MySQL prend en charge :
(SELECT a.column
FROM A_TABLE a
ORDER BY a.column DESC)
UNION
SELECT b.column
FROM B_TABLE b
...ce qui ne causera pas de soucis si vous voulez/avez besoin de transférer vers d'autres bases de données.
Le SQL standard permet uniquement :
SELECT a.column
FROM A_TABLE a
UNION
SELECT b.column
FROM B_TABLE b
ORDER BY column DESC