これは、LIMITを使用しているためです。
MySqlリファレンスによると、個々の選択でORDER BYまたはLIMITを使用する場合は、選択を括弧で囲む必要があります。
例(MySQLリファレンスから):
ORDER BYまたはLIMITを個々のSELECTに適用するには、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);
リソースはここにあります: http://dev.mysql.com /doc/refman/5.0/en/union.html
編集: 以前のバージョンはバージョン5.5であったため、参照リンクを変更しました。しかし、答えは変わりませんでした。