sql >> Base de Datos >  >> RDS >> Mysql

¿Qué dice el estándar SQL acerca de los paréntesis en las sentencias SQL UNION/EXCEPT/INTERSECT?

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