SQL OUTER JOIN (Italiano)
Riepilogo: in questo tutorial imparerai come utilizzare SQL outer join incluso il left outer join, il right outer join e full outer join.
Se vuoi saperne di più su SQL INNER JOIN, dai un’occhiata al tutorial SQL INNER JOIN.
Ci sono tre tipi di OUTER JOIN: left outer join, right unione esterna e unione esterna completa. Esaminiamo ogni tipo di join in modo più dettagliato.
SQL OUTER JOIN – join esterno sinistro
Il join esterno sinistro SQL è noto anche come join sinistro SQL. Supponiamo di voler unire due tabelle: A e B. L’unione esterna sinistra SQL restituisce tutte le righe nella tabella sinistra (A) e tutte le righe corrispondenti trovate nella tabella destra (B). Significa che il risultato del join sinistro SQL contiene sempre le righe nella tabella sinistra.
Quanto segue illustra la sintassi esterna sinistra SQL dell’unione di 2 tabelle: table_A e table_B:
1
2
3
4
|
SELEZIONA colonna1, colonna2 …
FROM table_A
LEFT JOIN table_B ON join_condition
WHERE row_condition
|
SQL OUTER JOIN – esempio di join esterno sinistro
La seguente query seleziona tutti i clienti e i loro ordini:
1
2
3
4
5
6
|
SELEZIONA c.customerid,
c.companyName,
orderid
FROM clienti c
LEFT JOIN orders o ON o.customerid = c .customerid
ORDER BY orderid
|
Vengono elencate tutte le righe nella tabella dei clienti. Nel caso in cui non ci sia una riga corrispondente nella tabella degli ordini trovata per la riga nella tabella dei clienti, la colonna orderid nella tabella degli ordini è popolata con valori NULL.
Possiamo usare il diagramma di Venn per visualizzare come SQL LEFT OUTER JOIN funziona.
SQL OUTER JOIN – right outer join
SQL right outer join restituisce tutte le righe nella tabella di destra e tutte le righe corrispondenti trovate nella tabella di sinistra. La sintassi del join esterno destro SQL è la seguente:
1
2
3
4
|
SELEZIONA colonna1, colonna2 …
DA table_A
RIGHT JOIN table_B ON join_condition
WHERE row_condition
|
SQL right outer join è noto anche come SQL right join.
SQL OUTER JOIN – esempio di right outer join
L’esempio seguente mostra Join esterno destro SQL:
1
2
3
4
5
6
|
SELEZIONA c.customerid,
c.companyName,
orderi d
DA clienti c
RIGHT JOIN ordini o ON o.customerid = c.customerid
ORDER BY orderid
|
La query restituisce tutte le righe nella tabella degli ordini e tutte le righe corrispondenti trovate nella tabella dei clienti.
Il seguente diagramma di Venn illustra come funziona il join esterno destro SQL:
SQL OUTER JOIN – join esterno completo
La sintassi del full outer join SQL è la seguente:
1
2
3
4
|
SELEZIONA colonna1, colonna2 …
FROM table_A
FULL OUTER JOIN table_B ON join_condition
WHERE row_condition
|
SQL full outer join restituisce:
- all ro ws nella tabella di sinistra table_A.
- tutte le righe nella tabella di destra table_B.
- e tutte le righe corrispondenti in entrambe le tabelle.
Alcuni database i sistemi di gestione non supportano la sintassi SQL full outer join, ad esempio MySQL. Poiché il join esterno completo SQL restituisce un set di risultati che è un risultato combinato sia del join sinistro SQL che del join destro SQL.Pertanto puoi facilmente emulare il join esterno completo SQL utilizzando il join sinistro SQL e il join destro SQL con l’operatore UNION come segue:
JOIN OUTER SQL – esempio di join esterno completo
La seguente query dimostra il full outer join SQL:
1
2
3
4
5
6
|
SELEZIONA c.customerid,
c.companyName,
orderid
DA clienti c
FULL OUTER JOIN ordini o ON o.customerid = c.customerid
ORDINA PER orderid
|
Il seguente diagramma di Venn illustra come funziona SQL full outer join:
In questo tutorial, hai imparato a conoscere vari SQL OUTER JOIN tra cui SQL left join, SQL right join e SQL full outer join.
- Questo tutorial è stato utile?
- SìNo