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

Warum verhält sich UNION ALL mit und ohne Klammern anders?

Das liegt daran, dass Sie LIMIT verwenden.

Die MySql-Referenz besagt, dass Sie, wenn Sie ORDER BY oder LIMIT für einzelne Auswahlen verwenden möchten, Ihre Auswahlen in Klammern setzen müssen.

Beispiel (aus MySQL-Referenz):

Um ORDER BY oder LIMIT auf ein einzelnes SELECT anzuwenden, setzen Sie die Klausel in die Klammern, die das SELECT einschließen:

(SELECT a FROM t1 WHERE a=10 AND B=1 ORDER BY a LIMIT 10)
UNION
(SELECT a FROM t2 WHERE a=11 AND B=2 ORDER BY a LIMIT 10);

Ressourcen finden Sie hier:http://dev.mysql.com /doc/refman/5.0/en/union.html

BEARBEITEN: Referenzlink geändert, da der vorherige für Version 5.5 war. Aber die Antwort hat sich nicht geändert.