L’operatore UNION unisce il risultato di due o più SELECT in un unico risultato. Il risultato dell’UNION contiene tutte le righe restituite dalle query coinvolte nell’operazione senza duplicati.
Ad esempio, potremmo unire le righe della tabella “oggetti” dove il prezzo è uguale a 1000 con quelle dove la collocazione è “OGG.002”. Ecco un esempio di query:
SELECT id, oggetto, marca, modello, descr, collocazione, quantita, prezzo FROM oggetti WHERE prezzo = 1000 UNION SELECT id, oggetto, marca, modello, descr, collocazione, quantita, prezzo FROM oggetti WHERE collocazione = 'OGG.002'
Questa query restituirà tutte le righe dove il prezzo è uguale a 1000 unite alle righe dove la collocazione è “OGG.002”.
È molto importante notare che le righe presenti in entrambi i risultati vengono scoperte e visualizzate una sola volta.
Nel nostro database abbiamo 4 risultanze per la ricerca con prezzo pari a 1.000 e altre 4 con collocazione OGG.002, a due di loro (scanner e cutter) hanno entrambi i parametri, per cui appaiono una volta sola. La tabella finale ha, quindi, 6 elementi.
UNION ALL SQL
In alcuni casi, però, servono anche le occorrenze duplicate. In questo caso la clausola UNION si modifica in UNION ALL. Il codice appena visto, con l’aggiunta di ALL, non filtra la duplicazione di scanner e cutter e visualizza una lista di 8 elementi.
Per convincerti, prova ad aggiungere ALL e a rieseguire quelle linee.