Quali tipi di JOIN conosci e in cosa si differenziano?
sobes.tech AI
Risposta dell'AI
I principali tipi di JOIN in SQL e le loro differenze:
-
INNER JOIN — restituisce solo le righe che hanno corrispondenze in entrambe le tabelle secondo la condizione di join.
-
LEFT JOIN (LEFT OUTER JOIN) — restituisce tutte le righe della tabella di sinistra e le corrispondenze della destra. Se non ci sono corrispondenze, i campi della tabella di destra saranno NULL.
-
RIGHT JOIN (RIGHT OUTER JOIN) — restituisce tutte le righe della tabella di destra e le corrispondenze della sinistra.
-
FULL JOIN (FULL OUTER JOIN) — restituisce tutte le righe di entrambe le tabelle, corrispondenti e non, con NULL nei punti senza dati.
-
CROSS JOIN — prodotto cartesiano di due tabelle, restituisce tutte le possibili combinazioni di righe.
Esempio:
-- INNER JOIN
SELECT * FROM A INNER JOIN B ON A.id = B.a_id;
-- LEFT JOIN
SELECT * FROM A LEFT JOIN B ON A.id = B.a_id;
-- RIGHT JOIN
SELECT * FROM A RIGHT JOIN B ON A.id = B.a_id;
-- FULL JOIN
SELECT * FROM A FULL JOIN B ON A.id = B.a_id;
-- CROSS JOIN
SELECT * FROM A CROSS JOIN B;
La scelta del JOIN dipende dai dati che si vogliono ottenere e da come gestire le assenze di corrispondenza.