# SQL UNION: come unire record correttamente

SQL UNION **unisce i record di due o più tabelle in una tabella di destinazione** senza duplicati. Il vantaggio è che puoi raggruppare i record correlati fra loro in una tabella, per migliorare la chiarezza ed eseguire interrogazioni di dati più efficienti e significative.

## Cos’è SQL UNION?

Che si tratti di record con informazioni di clienti, prezzi o prodotti, dati di progetto o finanziari, gestire [database](https://www.ionos.it/digitalguide/hosting/tecniche-hosting/database/) complessi non è facile. Tra i compiti degli amministratori e delle amministratrici c’è anche quello di **riunire i record collegati esistenti in tabelle riepilogative in modo efficiente**. A questo scopo spesso si usa l’[operatore SQL](https://www.ionos.it/digitalguide/server/configurazione/operatori-sql/) SQL UNION. Usando `UNION` per interrogazioni di dati, confronti, analisi o modifiche dei record, puoi unire i record selezionati di una o più tabelle e rimuovere gli eventuali duplicati.

In combinazione con altri [comandi SQL](https://www.ionos.it/digitalguide/server/configurazione/comandi-sql/) e funzioni come `ORDER BY`, `GROUP BY`, `WHERE` o `HAVING` puoi creare **strutture di dati rilevanti secondo criteri chiari** per analisi, rapporti o aggiornamenti. Inoltre, funzioni aggregate come [SQL AVG](https://www.ionos.it/digitalguide/server/configurazione/sql-avg/) o [SQL SUM](https://www.ionos.it/digitalguide/server/configurazione/sql-sum/) ti consentono di unire tabelle, allo stesso tempo calcolando e ordinando gli insiemi di risultati, se necessario.

Consiglio Per compiere i primi passi con [SQL](https://www.ionos.it/digitalguide/server/know-how/che-cose-sql/) bisogna disporre delle conoscenze di base necessarie. La nostra [introduzione a SQL mediante esempi](https://www.ionos.it/digitalguide/server/configurazione/introduzione-a-sql-mediante-esempi/) ti fornisce le funzioni e nozioni basilari più importanti per lavorare con questo linguaggio.

## La sintassi di SQL UNION

La semplice sintassi di `UNION` si presenta come segue:

```sql
SELECT  ColonnaA, ColonnaB, … oppure *  FROM  TabellaA
UNION
SELECT ColonnaA, ColonnaB, … oppure *  FROM  TabellaB
```

Si usano i parametri seguenti:

- `SELECT`: con la parola chiave [SQL SELECT](https://www.ionos.it/digitalguide/server/configurazione/sql-select/) definisci le colonne di due tabelle che desideri unire. Con l’asterisco `*` puoi anche selezionare tutti i record. Il numero di colonne selezionate deve essere identico in ciascun elemento SELECT di un’istruzione UNION ed essere nello stesso ordine.
- `UNION`: unisce i record selezionati di due tabelle in una tabella di destinazione.

## Le applicazioni di UNION

Se vuoi unire record correlati, come pratiche dei clienti, dati finanziari o informazioni di prodotto e di progetto, non puoi fare a meno di SQL UNION. A prescindere dal settore, in SQL questo operatore è usato ad esempio per le applicazioni seguenti:

- Creare pratiche completamente digitali e cartelle di dati dei clienti, progetti, pazienti o ordini
- Creare rapporti di vendita o confrontare dati di diversi reparti
- Analizzare il comportamento di acquisto per generare lead
- Analizzare e confrontare dati finanziari e delle transazioni
- Rimuovere i duplicati dai rapporti o da record riuniti
- Valutare quantità di produzione, quantità di consegna o scorte di magazzino
- Aggregare dati di ordini e vendite per individuare le tendenze o eseguire analisi di mercato

Consiglio Archiviazione dei dati sicura, prestazioni scalabili e proposte personalizzate di server e hosting: puoi avere tutto questo con l’[hosting SQL server](https://www.ionos.it/cloud/sql-server-hosting "Hosting SQL Server di IONOS") di IONOS. Scegli tra server cloud, server virtuali (VPS), server dedicati o hosting Linux e affidati alla sicurezza dei dati secondo standard europei.

## Esempi pratici di SQL UNION

Abbiamo creato alcuni esempi pratici che dovrebbero illustrarti in modo facilmente comprensibile come unire record di dati in modo efficiente con SQL UNION.

### Riunire due record in una tabella

Supponiamo di voler unire i record delle tabelle “Abbonati” e “Clienti” in una tabella di destinazione, senza duplicati, sulla base delle colonne “Nome”, “Indirizzo” e “IDcliente”. Procediamo come indicato di seguito:

```sql
SELECT  Nome, Indirizzo, IDcliente
FROM  Abbonati
UNION
SELECT  Nome, Indirizzo, IDcliente
FROM  Clienti
```

### Riunire i dati dei collaboratori di diversi reparti

Vogliamo riunire i dati delle collaboratrici e dei collaboratori delle tabelle “Marketing” e “Vendite” utilizzando le colonne “Nome” e “Città”. Procediamo nel modo seguente:

```sql
SELECT  Nome, Città
FROM  Marketing
UNION
SELECT  Nome, Città
FROM  Vendite
```

### Unire due record con UNION ALL

Nel nostro terzo esempio illustriamo il funzionamento di `UNION ALL`. A differenza dell’operatore `UNION`, con `UNION ALL` viene generata **una tabella di destinazione con tutti i record desiderati**. I duplicati non vengono quindi rimossi. Prendiamo ad esempio una tabella “Clienti” e una tabella “Fornitori”. Vogliamo unirle inserendo la condizione che i clienti e i fornitori siano di “Roma”. Procediamo come segue:

```sql
SELECT  Nome, Città
FROM  Clienti
WHERE  Città  =  ´Roma´
UNION ALL
SELECT  Nome, Città
FROM  Fornitori
WHERE  Città  =  ´Roma´
GROUP BY  Città;
```

## Alternative a SQL UNION

Per riunire dati senza duplicati ci sono altre opzioni in aggiunta o al posto di `UNION`. Ti presentiamo brevemente le più importanti:

- `JOIN`: con [SQL JOIN](https://www.ionos.it/digitalguide/server/configurazione/comandi-sql-join/) puoi riunire dati, interrogarli e collegarli a prescindere dalla tabella in cui si trovano. A questo scopo sono disponibili comandi come `INNER JOIN`, `LEFT JOIN`, `RIGHT JOIN` e `FULL JOIN` oppure `CROSS JOIN`. Con le istruzioni `JOIN` puoi unire i record di due tabelle in modo molto più mirato e flessibile che con `UNION`, perché puoi anche definire condizioni con la clausola `ON`.
- `GROUP BY`: con [SQL GROUP BY](https://www.ionos.it/digitalguide/server/configurazione/sql-group-by/) puoi unire i record selezionati di colonne e tabelle con valori identici in una tabella di destinazione.
- `ORDER BY`: con [SQL ORDER BY](https://www.ionos.it/digitalguide/server/configurazione/sql-order-by/) definisci come ordinare i record in una tabella di destinazione.
- `SELECT DISTINCT`: [SQL SELECT DISTINCT](https://www.ionos.it/digitalguide/server/configurazione/sql-like/), analogamente a UNION, ti permette di generare una tabella di destinazione con solo i risultati univoci dell’interrogazione, senza duplicati.
- `UNION ALL`: l’operatore `UNION ALL` funziona analogamente a `UNION`, ma unisce tutti i record della tabella selezionata, duplicati compresi.


This is a markdown version of: [https://www.ionos.it/digitalguide/server/configurazione/sql-union/](https://www.ionos.it/digitalguide/server/configurazione/sql-union/) for AI/LLM consumption.