JOIN in SQL è una clausola utilizzata per combinare righe di due o più tabelle in base a una colonna che contiene valori correlati. Il suo obiettivo principale è ottenere un singolo set di dati con informazioni complete e esaustive. “Completo” si riferisce qui alla struttura dei dati ottenuta dalla combinazione delle colonne risultanti dalla relazione tra le tabelle.

Per soddisfare le diverse esigenze di recupero dei dati, il comando JOIN è suddiviso in diversi tipi: OUTER JOIN, INNER JOIN, RIGHT JOIN e LEFT JOIN.

Differenze tra i tipi di JOIN in SQL

Di seguito viene fornita una spiegazione delle varie clausole JOIN insieme a esempi di sintassi per aiutarti a comprendere le loro differenze:

1. FULL OUTER JOIN

La clausola Outer join (o Full Outer Join) restituisce tutti i record o righe, sia con valori corrispondenti che senza, da entrambe le tabelle combinate. Se non ci sono dati corrispondenti tra le due tabelle, la parte mancante viene automaticamente riempita con il valore NULL nel risultato del join.

Sintassi:

SQL

SELECT column_name(s)

FROM table1

FULL OUTER JOIN table2

ON table1.column_name = table2.column_name

WHERE condition;

2. LEFT JOIN

Left Join è un’operazione che restituisce tutti i record dalla tabella di sinistra (la prima tabella) delle due tabelle combinate. Tutti i dati della tabella di sinistra vengono mantenuti e visualizzati, anche se i valori nella tabella di sinistra non corrispondono ad alcun dato nella tabella di destra (la seconda tabella). I dati nella tabella di destra che non hanno corrispondenza vengono sostituiti con NULL.

Sintassi:

SQL

SELECT column_name(s)

FROM table1

LEFT JOIN table2

ON table1.column_name = table2.column_name;

3. RIGHT JOIN (Complemento)

Come opposto del Left Join, la clausola Right Join restituisce tutti i record dalla tabella di destra (la seconda tabella), insieme ai dati corrispondenti dalla tabella di sinistra. Se non ci sono dati corrispondenti nella tabella di sinistra, il risultato dal lato sinistro sarà NULL.

Sintassi:

SQL

SELECT column_name(s)

FROM table1

RIGHT JOIN table2

ON table1.column_name = table2.column_name;

4. INNER JOIN (Complemento)

Inner Join è il tipo di clausola più frequentemente utilizzato. A differenza di Outer Join, Inner Join funziona in modo più restrittivo restituendo solo le righe che hanno dati corrispondenti (l’intersezione) in entrambe le tabelle combinate.

Sintassi:

SQL

SELECT column_name(s)

FROM table1

INNER JOIN table2

ON table1.column_name = table2.column_name;

Shares:
Lascia un commento

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