Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Clausola Union | Sottoquery Annidate
SQL Intermedio

bookClausola 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:

  1. Numero e ordine delle colonne: Tutte le query combinate con UNION devono avere lo stesso numero di colonne nello stesso ordine;

  2. Tipi di dati: Le colonne in ciascuna query devono avere tipi di dati compatibili;

  3. Righe uniche: Per impostazione predefinita, UNION rimuove le righe duplicate. Utilizzare UNION 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
copy

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:

123456789
SELECT 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'
copy

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?

question mark

Quali colonne sono richieste quando si utilizza la clausola UNION in SQL?

Select the correct answer

question mark

Come tratta la clausola UNION le righe duplicate per impostazione predefinita?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 5

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Awesome!

Completion rate improved to 4

bookClausola 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:

  1. Numero e ordine delle colonne: Tutte le query combinate con UNION devono avere lo stesso numero di colonne nello stesso ordine;

  2. Tipi di dati: Le colonne in ciascuna query devono avere tipi di dati compatibili;

  3. Righe uniche: Per impostazione predefinita, UNION rimuove le righe duplicate. Utilizzare UNION 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
copy

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:

123456789
SELECT 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'
copy

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?

question mark

Quali colonne sono richieste quando si utilizza la clausola UNION in SQL?

Select the correct answer

question mark

Come tratta la clausola UNION le righe duplicate per impostazione predefinita?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 5
some-alt