To dlatego, że używasz LIMIT.
Odnośnik MySql mówi, że jeśli chcesz użyć ORDER BY lub LIMIT na poszczególnych zaznaczeniach, musisz otoczyć swoje zaznaczenia nawiasami.
Przykład (z odniesienia MySQL):
Aby zastosować ORDER BY lub LIMIT do pojedynczego SELECT, umieść klauzulę w nawiasach, które zawierają 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);
Zasoby można znaleźć tutaj:http://dev.mysql.com /doc/refman/5.0/en/union.html
EDYTUJ: Zmieniono link referencyjny, ponieważ poprzedni dotyczył wersji 5.5. Ale odpowiedź się nie zmieniła.