Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

O que o padrão SQL diz sobre parênteses em instruções SQL UNION/EXCEPT/INTERSECT?


Não há necessidade de colchetes/parênteses em uma instrução UNION.

MySQL é o único que conheço neste momento, que permite definir ORDER BY e LIMIT cláusulas específicas para cada consulta, desde que a consulta esteja entre colchetes -- o SQL padrão permite apenas um ORDER BY para o resultado final. O GROUP BY e HAVING As cláusulas são específicas para cada consulta que compõe a instrução UNION'd.

O MySQL suporta:

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

...o que causará uma dor sem fim se você quiser/precisar portar para outros bancos de dados.

O SQL padrão permite apenas:

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