Ci sono diversi tipi di join, ognuno con uno scopo specifico:
INNER JOIN (o semplicemente JOIN): Seleziona le righe che hanno valori corrispondenti in entrambe le tabelle. È il tipo di join più comune.
LEFT JOIN (o LEFT OUTER JOIN): Seleziona tutte le righe dalla tabella di sinistra (la prima tabella menzionata nella query) insieme a quelle righe dalla tabella di destra che soddisfano la condizione di join. Le righe dalla tabella di sinistra che non hanno corrispondenze nella tabella di destra verranno comunque incluse, ma con valori NULL per le colonne della tabella di destra.
RIGHT JOIN (o RIGHT OUTER JOIN): Funziona come il LEFT JOIN, ma seleziona tutte le righe dalla tabella di destra e solo quelle righe dalla tabella di sinistra che soddisfano la condizione di join.
FULL JOIN (o FULL OUTER JOIN): Combina l'effetto di entrambi LEFT JOIN e RIGHT JOIN. Seleziona tutte le righe quando c'è una corrispondenza in una delle tabelle. Quindi, restituisce tutte le righe dalla tabella di sinistra e tutte le righe dalla tabella di destra, con valori NULL nelle colonne dove non c'è una corrispondenza.
Sintassi di Base per INNER JOIN
SELECT colonne FROM tabella1 INNER JOIN tabella2 ON tabella1.colonna_comune = tabella2.colonna_comune;
Esempio di INNER JOIN
SELECT impiegati.nome, reparti.nome_reparto FROM impiegati INNER JOIN reparti ON impiegati.id_reparto = reparti.id;
Questo esempio seleziona i nomi degli impiegati e i nomi dei loro reparti combinando le tabelle impiegati e reparti sulla colonna comune id_reparto.
Il concetto di join è essenziale per lavorare con database relazionali, in quanto permette di eseguire interrogazioni complesse e di ottenere informazioni dettagliate combinando dati da diverse tabelle.