Buena observación, pero yo no estoy hablando de un caso así:
Código:
(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);
sino así:
Código:
SELECT *
FROM
(SELECT a FROM t1 WHERE a=10 AND B=1 ORDER BY a LIMIT 10)
AS T1
UNION
SELECT *
FROM
(SELECT a FROM t2 WHERE a=11 AND B=2 ORDER BY a LIMIT 10)
AS T2;
No estoy uniendo dos select ordenados, sino dos select que se originan en tablas virtuales creadas por subconsultas. Las restricciones del manual no operan en este caso, porque la tabla unida es la virtual, no la física.
Esto
ya lo he implementado en varias ocasiones, y se positivamente que funciona.