Riepilogo: in questo tutorial, imparerai come utilizzare l’operatore MySQL UNION
per combinare due o più set di risultati da più istruzioni SELECT
in un unico set di risultati.
MySQL UNION operator
MySQLUNION
operatore consente di combinare due o più set di risultati di query in un unico set di risultati., Di seguito viene illustrata la sintassi del tag UNION
operatore:
Per combinare il risultato di due o più query utilizzando il UNION
operatore, queste sono le regole di base da seguire:
- Primo, il numero e gli ordini di colonne che appaiono in tutti i
SELECT
dichiarazioni deve essere la stessa. - In secondo luogo, i tipi di dati delle colonne devono essere uguali o compatibili.,
Per impostazione predefinita, l’operatoreUNION
rimuove le righe duplicate anche se non si specifica esplicitamente l’operatoreDISTINCT
.,
andiamo a vedere le seguenti tabelle di esempio: t1
e t2
:
La seguente dichiarazione combina il set di risultati restituiti da t1
e t2
tabelle:
Code language: SQL (Structured Query Language) (sql)
Il risultato finale di set contiene i valori distinti separate, set di risultati restituiti dalla query:
Code language: SQL (Structured Query Language) (sql)
Perché le righe con valore 2 e 3 sono duplicati, il UNION
e li ha rimossi e conservati esclusivamente valori univoci.,
Il seguente diagramma di Venn illustra l’unione di due insiemi di risultati che provengono da t1
e t2
tabelle:
Se si utilizza il tag UNION ALL
in modo esplicito, le righe duplicate, se disponibili, rimangono nel risultato. Poiché UNION ALL
non ha bisogno di gestire i duplicati, esegue più velocemente di UNION DISTINCT
.,
Code language: SQL (Structured Query Language) (sql)
Code language: SQL (Structured Query Language) (sql)
Come puoi vedere, i duplicati appaiono nel set di risultati combinati a causa dell’operazioneUNION ALL
.
UNIONE vs JOIN
AJOIN
combina i set di risultati orizzontalmente, aUNION
aggiunge il set di risultati verticalmente.,ple database per la dimostrazione:
Supponiamo che si desidera combinare il nome e cognome dei dipendenti e dei clienti in un singolo set, è possibile utilizzare il UNION
operatore come segue:
Code language: SQL (Structured Query Language) (sql)
Come si può vedere dall’output, MySQL UNION
utilizza i nomi delle colonne del primo SELECT
istruzione per le intestazioni di colonna di output.,
Se si desidera utilizzare altre intestazioni di colonna, è necessario utilizzare esplicitamente gli alias di colonna nella prima istruzione SELECT
come mostrato nel seguente esempio:
Questo esempio utilizza l’intestazione di colonna della prima query per l’output. Utilizza la funzioneCONCAT()
per concatenare nome, spazio e cognome in un nome completo.,
MySQL UNIONE e ORDER BY
Se si desidera ordinare il risultato di una unione, è possibile utilizzare un ORDER BY
clausola negli ultimi SELECT
dichiarazione, come mostrato nel seguente esempio:
si Noti che se si inserisce il tag ORDER BY
clausola in ogni SELECT
dichiarazione non pregiudica l’ordine delle righe nel risultato finale di set.,
Per distinguere tra dipendenti e clienti, è possibile aggiungere una colonna, come illustrato nella seguente query:
MySQL fornisce anche un’opzione alternativa per ordinare un insieme di risultati basati sulla posizione della colonna utilizzando ORDER BY
clausola come segue:
Tuttavia, non è una buona pratica per ordinare il set di risultati dalla posizione della colonna.
In questo tutorial, hai imparato come usare l’istruzione MySQL UNION
per combinare i dati da più query in un unico set di risultati.,
- Questo tutorial è stato utile?
- Sì