MySQL LEFT JOIN (Italiano)

Riepilogo: in questo tutorial, imparerai a conoscere la clausola MySQLLEFT JOIN e come applicarla per interrogare i dati da due o più tabelle.

Introduzione a MySQL LEFT JOIN

IlLEFT JOIN consente di interrogare i dati da due o più tabelle. Simile alla clausolaINNER JOIN,LEFT JOIN è una clausola facoltativa dell’istruzioneSELECT, che appare immediatamente dopo la clausolaFROM.,

Supponiamo di voler unire due tabelle t1et2.

La seguente istruzione mostra come utilizzare la clausola LEFT JOIN per unire le due tabelle:

Code language: SQL (Structured Query Language) (sql)

Quando si utilizza la clausola LEFT JOIN, vengono introdotti i concetti della tabella sinistra e della tabella destra.

Nella sintassi precedente, t1 è la tabella di sinistra e t2 è la tabella di destra.,

La clausolaLEFT JOIN seleziona i dati a partire dalla tabella di sinistra (t1). Corrisponde a ogni riga della tabella di sinistra (t1) con ogni riga della tabella di destra (t2) in base ajoin_condition.

Se le righe di entrambe le tabelle causano la condizione join valutaTRUE,LEFT JOIN combina colonne di righe di entrambe le tabelle in una nuova riga e include questa nuova riga nelle righe di risultato.,

nel caso In cui la riga della tabella a sinistra (t1) non corrisponde con ogni riga della tabella di destra(t2), LEFT JOIN ancora unisce le colonne delle righe di entrambe le tabelle in una nuova riga e includono la nuova riga nella riga di risultato. Tuttavia, utilizza NULL per tutte le colonne della riga dalla tabella di destra.

In altre parole, LEFT JOIN restituisce tutte le righe della tabella di sinistra indipendentemente dal fatto che una riga della tabella di sinistra abbia una riga corrispondente dalla tabella di destra o meno., Se non c’è corrispondenza, le colonne della riga della tabella di destra conterranno NULL.

Il seguente diagramma di Venn consente di visualizzare come il LEFT JOIN clausola funziona:

MySQL LEFT JOIN – Diagramma di Venn

MySQL LEFT JOIN esempi

prendiamo alcuni esempi di utilizzo del tag LEFT JOIN clausola.,

1) Utilizzo della clausola MySQL LEFT JOIN per unire due tabelle

Vedere le seguenti tabellecustomerseorders nel database di esempio.

Ogni cliente può avere zero o più ordini mentre ogni ordine deve appartenere a un cliente.,

la query utilizza il LEFT JOIN clausola di trovare a tutti i clienti e i loro ordini:

Code language: SQL (Structured Query Language) (sql)

in Alternativa, è possibile salvare scrivere utilizzando la tabella alias:

Code language: SQL (Structured Query Language) (sql)

In questo esempio:

  • customers è la tabella a sinistra e orders è la tabella a destra.
  • La clausolaLEFT JOIN restituisce tutti i clienti, compresi i clienti che non hanno alcun ordine., Se un cliente non ha un ordine, i valori nella colonna orderNumberestatussonoNULL.,

a Causa di entrambe le tabelle clienti e ordini hanno lo stesso nome di colonna ( customerNumber) nella condizione di join con la parità di operatore, è possibile utilizzare la sintassi seguente:

Code language: SQL (Structured Query Language) (sql)

Le clausole seguenti sono equivalenti:

Code language: SQL (Structured Query Language) (sql)

E

Code language: SQL (Structured Query Language) (sql)

Se si sostituisce il LEFT JOIN clausola per il INNER JOIN clausola, vi saranno mostrati anche il solo clienti che hanno almeno un ordine.,

2) Utilizzo della clausola MySQL LEFT JOIN per trovare righe non corrispondenti

La clausolaLEFT JOIN è molto utile quando si desidera trovare righe in una tabella che non ha una riga corrispondente da un’altra tabella.,”> per trovare i clienti che non hanno fine:

Code language: SQL (Structured Query Language) (sql)

3) L’utilizzo di MySQL SINISTRA UNIRSI, tre tabelle

Vedi le tre tabelle seguenti tag employees customers e payments:

in Questo esempio utilizza due LEFT JOIN clausole di unire le tre tabelle: employees customers e payments.,

Code language: SQL (Structured Query Language) (sql)

Questa immagine mostra l’uscita parziale:

Come funziona.

  • Il primoLEFT JOINrestituisce tutti i dipendenti e i clienti che hanno rappresentato ciascun dipendente oNULL se il dipendente non è responsabile di alcun cliente.
  • Il secondoLEFT JOINrestituisce i pagamenti di ciascun cliente rappresentato da un dipendente oNULL se il cliente non ha alcun pagamento.

Condizione nella clausola WHERE vs., SULLA clausola

Vedere il seguente esempio.

Code language: SQL (Structured Query Language) (sql)

Questo esempio ha utilizzato la clausolaLEFT JOINper interrogare i dati dalle tabelleorderseorderDetails. La query restituisce l’ordine e le relative voci del numero d’ordine10123.,

Tuttavia, se si sposta la condizione dalla WHERE clausola ON clausola:

Code language: SQL (Structured Query Language) (sql)

Si avrà un significato diverso.,

In questo caso, la query restituisce tutti gli ordini, ma solo l’ordine 10123 avranno linea di elementi associati con esso come nella foto seguente:

si Noti che per INNER JOIN clausola, condizione nel ON clausola è equivalente alla condizione nel WHERE clausola.

In questo tutorial, hai imparato come usare la clausola MySQL LEFT JOIN per unire i dati da due o più tabelle.,

  • Questo tutorial è stato utile?

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *