Clausola Union
Abbiamo attirato l'attenzione di un cliente che necessita di query SQL. Prima di approfondire i JOINs
, impariamo la clausola UNION
, fondamentale per combinare più tabelle.
Ecco alcuni aspetti importanti sull'utilizzo di UNION
:
-
Numero e ordine delle colonne: Tutte le query combinate con
UNION
devono avere lo stesso numero di colonne nello stesso ordine; -
Tipi di dati: Le colonne in ciascuna query devono avere tipi di dati compatibili;
-
Righe uniche: Per impostazione predefinita,
UNION
rimuove le righe duplicate. UtilizzareUNION ALL
se si desidera mantenere i duplicati.
Per comprendere meglio come combinare correttamente le tabelle utilizzando la clausola UNION
, è stata introdotta una tabella aggiuntiva che contiene informazioni sui contractors
.
Le informazioni sono limitate: solo first_name
, last_name
ed email
.
Puoi notare che questa tabella presenta somiglianze con la tabella employees
. Utilizzando la clausola UNION
, è possibile combinare queste due tabelle per, ad esempio, visualizzare un elenco di tutti i nomi e cognomi di dipendenti e collaboratori coinvolti nell'azienda.
Per fare ciò, utilizzeremo la clausola UNION
:
12345678(SELECT employee_id as id, first_name, last_name FROM employees) UNION (SELECT contractor_id as id, first_name, last_name FROM contractors) ORDER BY id
Analizziamo cosa sta succedendo:
Abbiamo due query che restituiscono ciascuna tre colonne con gli stessi tipi di dati. Vogliamo visualizzare l'Id
, il first_name
e il last_name
di tutte le persone presenti in azienda. Abbiamo inoltre rinominato la colonna Id
affinché entrambe le query abbiano gli stessi nomi di colonna.
Successivamente, utilizziamo UNION
per combinare i risultati di queste query, eliminando i duplicati (anche se in questo caso non ce ne sono).
Infine, ordiniamo i risultati per Id
utilizzando ORDER BY
.
Nota
Stiamo ordinando per
Id
, che è una colonna comune in entrambe le tabelle.
Dopo aver utilizzato UNION
, otteniamo una "singola query estesa" che può essere ulteriormente manipolata con clausole come ORDER BY
.
Non è possibile utilizzare direttamente WHERE
o GROUP BY
con tabelle combinate tramite UNION
. Per applicare queste clausole, è necessario utilizzare una sottoquery nella sezione FROM
. Ecco un esempio di come procedere:
123456789SELECT id, first_name, last_name FROM ( SELECT employee_id AS id, first_name, last_name FROM employees UNION SELECT contractor_id AS id, first_name, last_name FROM contractors ) AS combined WHERE first_name = 'Jane'
Utilizzare una sottoquery nella sezione FROM
offre maggiore flessibilità! Può sembrare complicato all'inizio, ma padroneggiare questa tecnica renderà la scrittura di query complesse molto più semplice.
1. Quali colonne sono richieste quando si utilizza la clausola UNION
in SQL?
2. Come tratta la clausola UNION
le righe duplicate per impostazione predefinita?
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
Awesome!
Completion rate improved to 4
Clausola Union
Scorri per mostrare il menu
Abbiamo attirato l'attenzione di un cliente che necessita di query SQL. Prima di approfondire i JOINs
, impariamo la clausola UNION
, fondamentale per combinare più tabelle.
Ecco alcuni aspetti importanti sull'utilizzo di UNION
:
-
Numero e ordine delle colonne: Tutte le query combinate con
UNION
devono avere lo stesso numero di colonne nello stesso ordine; -
Tipi di dati: Le colonne in ciascuna query devono avere tipi di dati compatibili;
-
Righe uniche: Per impostazione predefinita,
UNION
rimuove le righe duplicate. UtilizzareUNION ALL
se si desidera mantenere i duplicati.
Per comprendere meglio come combinare correttamente le tabelle utilizzando la clausola UNION
, è stata introdotta una tabella aggiuntiva che contiene informazioni sui contractors
.
Le informazioni sono limitate: solo first_name
, last_name
ed email
.
Puoi notare che questa tabella presenta somiglianze con la tabella employees
. Utilizzando la clausola UNION
, è possibile combinare queste due tabelle per, ad esempio, visualizzare un elenco di tutti i nomi e cognomi di dipendenti e collaboratori coinvolti nell'azienda.
Per fare ciò, utilizzeremo la clausola UNION
:
12345678(SELECT employee_id as id, first_name, last_name FROM employees) UNION (SELECT contractor_id as id, first_name, last_name FROM contractors) ORDER BY id
Analizziamo cosa sta succedendo:
Abbiamo due query che restituiscono ciascuna tre colonne con gli stessi tipi di dati. Vogliamo visualizzare l'Id
, il first_name
e il last_name
di tutte le persone presenti in azienda. Abbiamo inoltre rinominato la colonna Id
affinché entrambe le query abbiano gli stessi nomi di colonna.
Successivamente, utilizziamo UNION
per combinare i risultati di queste query, eliminando i duplicati (anche se in questo caso non ce ne sono).
Infine, ordiniamo i risultati per Id
utilizzando ORDER BY
.
Nota
Stiamo ordinando per
Id
, che è una colonna comune in entrambe le tabelle.
Dopo aver utilizzato UNION
, otteniamo una "singola query estesa" che può essere ulteriormente manipolata con clausole come ORDER BY
.
Non è possibile utilizzare direttamente WHERE
o GROUP BY
con tabelle combinate tramite UNION
. Per applicare queste clausole, è necessario utilizzare una sottoquery nella sezione FROM
. Ecco un esempio di come procedere:
123456789SELECT id, first_name, last_name FROM ( SELECT employee_id AS id, first_name, last_name FROM employees UNION SELECT contractor_id AS id, first_name, last_name FROM contractors ) AS combined WHERE first_name = 'Jane'
Utilizzare una sottoquery nella sezione FROM
offre maggiore flessibilità! Può sembrare complicato all'inizio, ma padroneggiare questa tecnica renderà la scrittura di query complesse molto più semplice.
1. Quali colonne sono richieste quando si utilizza la clausola UNION
in SQL?
2. Come tratta la clausola UNION
le righe duplicate per impostazione predefinita?
Grazie per i tuoi commenti!