Enveloppez les sous-instructions individuelles entre parenthèses pour rendre la syntaxe sans ambiguïté :
(SELECT result FROM tbl1 LIMIT 1)
UNION ALL
(SELECT result FROM tbl2 LIMIT 1)
Le manuel sur UNION est très clair à ce sujet :
select_statementest n'importe quelSELECTinstruction sansORDER BY,LIMIT,FOR UPDATE, ouFOR SHAREclause. (ORDER BYetLIMITpeut être attaché à une sous-expression si elle est entre parenthèses. Sans parenthèses, ces clauses seront considérées comme s'appliquant au résultat de l'UNION, pas à son expression d'entrée de droite.)