Qual è la differenza tra UNION e UNION ALL?

Qual è la differenza tra UNION e UNION ALL?

Soluzione

UNION rimuove i record duplicati (dove tutte le colonne nei risultati sono le stesse), UNION ALL no.

C'è un impatto sulle prestazioni quando si usa UNION invece di UNION ALL, poiché il server del database deve fare un lavoro aggiuntivo per rimuovere le righe duplicate, ma di solito non si vogliono i duplicati (specialmente quando si sviluppano rapporti).

UNION Esempio:

SELECT 'foo' AS bar UNION SELECT 'foo' AS bar

Risultato:

+-----+
| bar |
+-----+
| foo |
+-----+
1 row in set (0.00 sec)

UNION ALL esempio:

SELECT 'foo' AS bar UNION ALL SELECT 'foo' AS bar

Risultato:

+-----+
| bar |
+-----+
| foo |
| foo |
+-----+
2 rows in set (0.00 sec)
Commentari (13)

La differenza di base tra UNION e UNION ALL è che l'operazione di unione elimina le righe duplicate dal set di risultati, ma union all restituisce tutte le righe dopo l'unione.

da http://zengin.wordpress.com/2007/07/31/union-vs-union-all/

Commentari (0)

Non sono sicuro che importi quale database

UNION e UNION ALL dovrebbero funzionare su tutti i server SQL.

Dovresti evitare le UNION non necessarie, sono enormi perdite di prestazioni. Come regola generale usa UNION ALL se non sei sicuro di quale usare.

Commentari (4)