Sobes.tech
Senior

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.