Riepilogo: in questo tutorial imparerai a utilizzare SQL Server FULL OUTER JOIN
per eseguire query sui dati da due o più tabelle.
Introduzione al full outer join di SQL Server
FULL OUTER JOIN
restituisce un set di risultati che include righe da entrambe le tabelle di sinistra e di destra. Quando non esistono righe corrispondenti per la riga nella tabella di sinistra, le colonne della tabella di destra avranno valori nulli. Allo stesso modo, quando non esistono righe corrispondenti per la riga nella tabella di destra, la colonna della tabella di sinistra avrà valori nulli.
Quanto segue mostra la sintassi di FULL OUTER JOIN
quando si uniscono due tabelle T1
e T2
:
Code language: SQL (Structured Query Language) (sql)
La parola chiave OUTER
è facoltativa, quindi puoi saltarla come mostrato nella seguente query:
Code language: SQL (Structured Query Language) (sql)
In questa sintassi :
- Innanzitutto, specifica la tabella a sinistra
T1
nella clausolaFROM
. - In secondo luogo, specifica la tabella corretta
T2
e un predicato di join.
Il seguente diagramma di Venn illustra il FULL OUTER JOIN
di due set di risultati:
Esempio di join esterno completo di SQL Server
Configuriamo una tabella di esempio per dimostrare il join esterno completo.
Innanzitutto, crea un nuovo schema denominato pm
che sta per project management.
Code language: SQL (Structured Query Language) (sql)
Successivamente, crea nuove tabelle denominate projects
e members
nello schema pm
:
Supponiamo che solo ogni membro possa partecipare in un progetto e ogni progetto ha zero o più membri. Se un progetto è in fase di idea, quindi non ci sono membri assegnati.
Quindi, inserisci alcune righe in projects
e members
tabelle:
Successivamente, interroga i dati delle tabelle projects
e members
:
Code language: SQL (Structured Query Language) (sql)
Code language: SQL (Structured Query Language) (sql)
Infine, utilizza FULL OUTER JOIN
per eseguire query sui dati dalle tabelle projects
e members
:
Ecco loutput:
In questo esempio, la query ha restituito membri che partecipano a progetti, membri che non partecipano a progetti e progetti che non hanno membri.
Per trovare membri che non partecipano a qualsiasi progetto e progetti w Se non hai membri, aggiungi una clausola WHERE
alla query precedente:
Limmagine seguente mostra loutput:
Come chiaramente mostrato nelloutput, Jack Daniel
non partecipa ad alcun progetto e Develop Mobile Sales Platform
non ha membri.
In questo tutorial, hai imparato a utilizzare SQL Server completamente esterno join per eseguire query sui dati da due o più tabelle.