Mysql
 sql >> Database >  >> RDS >> Mysql

Cosa dice lo standard SQL sulle parentesi nelle istruzioni SQL UNION/EXCEPT/INTERSECT?

Non c'è bisogno di parentesi/parentesi in una dichiarazione UNION.

MySQL è l'unico di cui sono a conoscenza in questo momento, che ti permette di definire ORDER BY e LIMIT clausole specifiche per ogni query purché la query sia racchiusa tra parentesi -- l'SQL standard consente solo un ORDER BY per il risultato finale. Il GROUP BY e HAVING le clausole sono specifiche per ogni query che costituisce l'istruzione UNION'd.

MySQL supporta:

 (SELECT a.column
    FROM A_TABLE a
ORDER BY a.column DESC)
UNION
SELECT b.column
  FROM B_TABLE b

...che causerà un dolore infinito se desideri/devi eseguire il porting su altri database.

L'SQL standard consente solo:

SELECT a.column
  FROM A_TABLE a
UNION
SELECT b.column
  FROM B_TABLE b
ORDER BY column DESC