Mysql
 sql >> Database >  >> RDS >> Mysql

Perché UNION ALL con e senza parentesi si comporta in modo diverso?

Questo perché stai usando LIMIT.

Il riferimento di MySql dice che se vuoi usare ORDER BY o LIMIT su singole selezioni, devi racchiudere le tue selezioni tra parentesi.

Esempio (da riferimento MySQL):

Per applicare ORDER BY o LIMIT a una singola SELECT, inserisci la clausola tra parentesi che racchiudono la 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);

La risorsa può essere trovata qui:http://dev.mysql.com /doc/refman/5.0/en/union.html

MODIFICA: Collegamento di riferimento modificato perché quello precedente era per la versione 5.5. Ma la risposta non è cambiata.