Sobes.tech
Junior

Cos'è una left join in SQL?

sobes.tech AI

Risposta dell'AI

La join sinistra (LEFT JOIN o LEFT OUTER JOIN) in SQL viene utilizzata per combinare le righe di due tabelle.

Il risultato di LEFT JOIN include:

  • Tutte le righe della tabella di sinistra (prima).
  • Le righe corrispondenti della tabella di destra (seconda), dove la condizione di join è soddisfatta.
  • Per le righe della tabella di sinistra senza corrispondenza nella destra, le colonne della tabella di destra conterranno valori NULL.

Esempio di sintassi:

SELECT <lista_di_colonne>
FROM <tabella_sinistra> AS L
LEFT JOIN <tabella_destra> AS R ON L.<colonna_di_join> = R.<colonna_di_join>;

Modalità di funzionamento:

Ogni riga della tabella di sinistra viene esaminata. Per ogni riga, si cerca una corrispondenza nella tabella di destra secondo la condizione ON.

  • Se vengono trovate corrispondenze, la riga della tabella di sinistra viene combinata con tutte le righe corrispondenti della tabella di destra.
  • Se non vengono trovate corrispondenze, la riga della tabella di sinistra viene inclusa nel risultato, e le colonne della tabella di destra vengono riempite con NULL.

Rappresentazione visiva:

Immagina due insiemi di dati: Left (tabella di sinistra) e Right (tabella di destra). LEFT JOIN restituisce tutti gli elementi di Left, così come quelli di Right che hanno una corrispondenza in Left. Se in Left ci sono elementi senza corrispondenza in Right, questi elementi di Left saranno comunque inclusi nel risultato, ma i campi corrispondenti di Right saranno vuoti (NULL).

Confronto con altri tipi di JOIN:

Tipo di JOIN Descrizione
INNER JOIN Restituisce solo le righe in cui c'è una corrispondenza tra entrambe le tabelle.
LEFT JOIN Restituisce tutte le righe della tabella di sinistra e le righe corrispondenti di quella di destra. NULL per le righe senza corrispondenza in destra.
RIGHT JOIN Restituisce tutte le righe della tabella di destra e le righe corrispondenti di quella di sinistra. NULL per le righe senza corrispondenza in sinistra.
FULL OUTER JOIN Restituisce tutte le righe con corrispondenza in una delle due tabelle. NULL per le righe senza corrispondenza in entrambe le tabelle.

Pertanto, LEFT JOIN è utile quando si desidera ottenere un elenco completo di record da una tabella e completarli con informazioni da un'altra tabella, anche se non tutti i record hanno dati corrispondenti.