SQL Server Left Join

SQL Server Left Join

Una delle caratteristiche di spicco dei database relazionali, come SQL Server, è ottenere dati da varie tabelle e combinarli per creare informazioni nuove ma correlate. Il modo per raggiungere questo obiettivo è l'uso di SQL join.

I join sono utili in quanto ti consentono di dire a SQL Server come utilizzare e organizzare la data dalle tabelle selezionate. Questo aiuta a creare una relazione tra due o più tabelle.

Questo articolo imparerà come usare il SQL Left Join in SQL Server.

Prima di procedere, assicurati di avere SQL Server installato ed in esecuzione. Si consiglia inoltre di utilizzare SQL Server Management Studio per ottenere un output simile a quello dei campioni di codice.

Le basi

SQL Left Join è un tipo di join che restituisce le righe dalla tabella sinistra indipendentemente da una riga corrispondente sulla tabella destra. Ciò differisce dagli altri join, come i giunti interni, che richiedono almeno una riga corrispondente sia nei tavoli sinistra che a destra.

Facciamo un semplice esempio. Supponiamo di avere Tabella x E Tabella y. La tabella X ha righe (A B C D E) Mentre la tabella Y ha righe: (d e f g h).

Se eseguiamo un join a sinistra sulle tabelle, il set risultante conterrà tutti i valori dalla tabella sinistra, indipendentemente dal fatto che le righe corrispondano alla tabella a destra o no.

Possiamo esprimere la sintassi di un join sinistra SQL come:

Seleziona colonna (i)
Da table1_name
Sinistra join table2_name
Su table1_name.col_name = table2_name.col_name;

Nella sintassi sopra, iniziamo selezionando le colonne di destinazione che desideriamo includere nel set di risultati successivi; Abbiamo impostato la clausola di join sinistra seguita dalla condizione di join specificata dopo la clausola.

Sinistra join dall'esempio

Supponiamo che abbiamo due tabelle contenenti informazioni sui clienti, come CustomerId, FirstName e LastName. L'altra tabella contiene informazioni sulle vendite come SalesID, venditore, CustomerId, ProductID, quantità.

Possiamo eseguire un join sinistra per selezionare tutti i clienti e le loro vendite. Considera l'esempio di query SQL mostrata di seguito:

Seleziona i primi 10 clienti.Primo nome, vendite.Salesid
Dai clienti
Left Using Sales sui clienti.CustomerId = Vendite.Identificativo del cliente

La query di esempio sopra dovrebbe restituire un set risultante come mostrato di seguito:

Il join a sinistra restituisce tutte le righe dalla tabella dei clienti indipendentemente dall'indisponibilità di abbinare le righe nella tabella delle vendite.

Esempio 2 - Unisciti a sinistra con la clausola

È inoltre possibile specificare una condizione dove la query. Ciò consente di filtrare per risultati specifici all'interno di una tabella impostata. Ad esempio, possiamo eseguire un join sinistra sui clienti in cui il nome è John.

Considera l'esempio mostrato di seguito:

Seleziona i primi 10 clienti.Primo nome, vendite.Salesid
Dai clienti
Left Using Sales sui clienti.CustomerId = Vendite.Identificativo del cliente
Dove i clienti.FirstName = 'John';

La query restituirà solo le righe in cui il primo nome del cliente è John. Un set di risultati di esempio è come mostrato:

Noti che il Sinistra uni query aggiunge un NULLO Se non c'è riga corrispondente.

Esempio 3 - Unisciti a sinistra con ordine per clausola

L'aggiunta di un ordine per clausola a un join a sinistra consente di ordinare i valori nel set risultante da una condizione specifica. Ad esempio, la query di seguito ordina il risultato da parte del Salesid in ordine decrescente.

Seleziona i primi 10 clienti.Primo nome, vendite.Salesid
Dai clienti
Left Using Sales sui clienti.CustomerId = Vendite.Identificativo del cliente
Ordine per vendite.SalesId Desc;

La query restituisce i valori ordinati da SalesId dal più alto al più basso. La query risultante è come mostrato di seguito:

SQL Server: sinistra join vs. Unisciti interni

Se sei un nuovo principiante SQL, scegliere tra un join a sinistra e un join interno può confonderti. Per evitare la confusione, usa solo sinistra join quando è necessario che il set risultante includa tutte le righe da sinistra, anche se non ci sono righe corrispondenti nella tabella destra.

Il join interno è utile quando è necessario che il set risultante includa solo righe con coppie corrispondenti sul tavolo sinistro e destro.

Chiusura

Questo articolo copre le basi dell'utilizzo di SQL Left Join su SQL Server. È possibile creare un set di record risultanti utilizzando i join sinistra anche se non ci sono righe corrispondenti sulle tabelle sinistro e destro.

Resta sintonizzato per ulteriori contenuti SQL Server!!