Articles

SQL LEFT JOIN (Italiano)

Sommario: in questo tutorial, vi presenteremo un altro tipo di join chiamato SQL LEFT JOIN che consente di recuperare i dati da più tabelle.

Introduzione alla clausola SQL LEFT JOIN

Nel tutorial precedente, è stato appreso il join interno che restituisce le righe se c’è, almeno, una riga in entrambe le tabelle che corrisponde alla condizione join. La clausola inner join elimina le righe che non corrispondono a una riga dell’altra tabella.,

Il join sinistro, tuttavia, restituisce tutte le righe dalla tabella di sinistra indipendentemente dal fatto che ci sia o meno una riga corrispondente nella tabella di destra.

Supponiamo di avere due tabelle A e B. La tabella A ha quattro righe 1, 2, 3 e 4. La tabella B ha anche quattro righe 3, 4, 5, 6.

Quando uniamo la tabella A con la tabella B, tutte le righe della tabella A (la tabella di sinistra) sono incluse nel set di risultati se c’è una riga corrispondente nella tabella B o meno.

In SQL, usiamo la seguente sintassi per unire la tabella A con la tabella B.,

La clausola JOIN SINISTRA appare dopo la clausola FROM. La condizione che segue la parola chiave ON è chiamata join conditionB.n = A.n

SQL LEFT JOIN examples

SQL LEFT JOIN two tables examples

Diamo un’occhiata alle tabellecountries elocations.

Ogni posizione appartiene a un solo paese, mentre ogni paese può avere zero o più posizioni., Il rapporto tra le tabelle dei paesi e delle posizioni è uno-a-molti.

La colonna country_id nella tabella locations è la chiave esterna che si collega alla colonna country_id nella tabella countries.

Per interrogare i nomi dei paesi di Stati Uniti, Regno Unito e Cina, si utilizza la seguente istruzione.,0bc”>

Vedere in azione

La seguente query recupera posizioni in USA, UK e Cina:

Vedere in azione

Ora, possiamo usare il LEFT JOIN per unire i paesi tabella con le posizioni di una tabella come la seguente query:

Vedere in azione

La condizione nella clausola WHERE viene applicato in modo che l’istruzione solo recupera i dati dagli stati UNITI, regno UNITO e Cina righe.,

Poiché usiamo la clausola LEFT JOIN, tutte le righe che soddisfano la condizione nella clausola WHERE della tabella countries sono incluse nel set di risultati.

Per ogni riga nella tabella paesi, la clausola LEFT JOIN trova le righe corrispondenti nella tabella locations.

Se viene trovata almeno una riga corrispondente, il motore di database combina i dati delle colonne delle righe corrispondenti in entrambe le tabelle.

Nel caso in cui non venga trovata alcuna riga corrispondente, ad esempio con country_id CN, la riga nella tabella paesi viene inclusa nel set di risultati e la riga nella tabella posizioni viene riempita con valori NULLI.,

Poiché le righe non corrispondenti nella tabella di destra sono riempite con i valori NULL, è possibile applicare la clausola LEFT JOIN alle righe miss-match tra le tabelle.

Per esempio, per trovare il paese che non dispone di ogni località nei luoghi di tabella, è possibile utilizzare la seguente query:

Vedere in azione

SQL JOIN SINISTRO 3 tabelle di esempio

Vedere tabelle seguenti: regioni, paesi e località.,

Una regione può avere zero o più paesi mentre ogni paese si trova in una regione. Il rapporto tra paesi e regioni tabelle è uno-a-molti. La colonna region_id nella tabella paesi è il collegamento tra la tabella paesi e regioni.,

L’istruzione seguente viene illustrato come unire 3 tabelle: regioni, paesi e località:

Vedere in azione

Ora si dovrebbe avere una buona comprensione di come SQL JOIN SINISTRO clausola funziona e sapere applicare la SINISTRA clausola JOIN query di dati da più tabelle.

  • Questo tutorial è stato utile ?