Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Was sagt der SQL-Standard über Klammern in SQL UNION/EXCEPT/INTERSECT-Anweisungen?

In einer UNION-Anweisung sind keine Klammern/Klammern erforderlich.

MySQL ist das einzige, das mir im Moment bekannt ist, das es Ihnen erlaubt, ORDER BY zu definieren und LIMIT Klauseln, die für jede Abfrage spezifisch sind, solange die Abfrage in Klammern eingeschlossen ist – Standard-SQL erlaubt nur einen ORDER BY für das Endergebnis. Die GROUP BY und HAVING Klauseln sind spezifisch für jede Abfrage, aus der die UNION-Anweisung besteht.

MySQL unterstützt:

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

...was Ihnen unendlich viel Ärger bereiten wird, wenn Sie auf andere Datenbanken portieren wollen/müssen.

Standard-SQL erlaubt nur:

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