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

¿Por qué UNION ALL con y sin paréntesis se comporta de manera diferente?

Eso es porque estás usando LIMIT.

La referencia de MySql dice que si desea usar ORDER BY o LIMIT en selecciones individuales, debe encerrar sus selecciones entre paréntesis.

Ejemplo (de la referencia de MySQL):

Para aplicar ORDER BY o LIMIT a un SELECT individual, coloque la cláusula dentro de los paréntesis que encierran el 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);

El recurso se puede encontrar aquí:http://dev.mysql.com /doc/refman/5.0/en/union.html

EDITAR: Enlace de referencia cambiado porque el anterior era para la versión 5.5. Pero la respuesta no cambió.