Mysql
 sql >> Base de données >  >> RDS >> Mysql

Pourquoi UNION ALL avec et sans parenthèse se comporte-t-il différemment ?

C'est parce que vous utilisez LIMIT.

La référence MySql indique que si vous souhaitez utiliser ORDER BY ou LIMIT sur des sélections individuelles, vous devez entourer vos sélections de parenthèses.

Exemple (à partir de la référence MySQL) :

Pour appliquer ORDER BY ou LIMIT à un SELECT individuel, placez la clause entre les parenthèses qui entourent le SELECT :

(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);

La ressource peut être trouvée ici :http://dev.mysql.com /doc/refman/5.0/en/union.html

MODIF : Lien de référence modifié car le précédent concernait la version 5.5 . Mais la réponse n'a pas changé.