Sobes.tech
Middle

Quali tipi di JOIN esistono in SQL e in cosa si differenziano LEFT JOIN, RIGHT JOIN e INNER JOIN?

sobes.tech AI

Risposta dell'AI

In SQL ci sono diversi tipi di JOIN che consentono di unire le righe di due tabelle in base a una condizione specifica:

  • INNER JOIN — restituisce solo le righe che hanno corrispondenze in entrambe le tabelle.
  • LEFT JOIN (LEFT OUTER JOIN) — restituisce tutte le righe della tabella di sinistra e le righe corrispondenti di quella di destra. Se non ci sono corrispondenze, i campi della tabella di destra saranno NULL.
  • RIGHT JOIN (RIGHT OUTER JOIN) — al contrario, restituisce tutte le righe della tabella di destra e quelle corrispondenti di quella di sinistra, con NULL dove non ci sono corrispondenze.

Esempio:

Tabella A:

id nome
1 Alice
2 Bob

Tabella B:

id città
1 Londra
3 Berlino
  • INNER JOIN per id restituirà solo id=1 (Alice e Londra).
  • LEFT JOIN restituirà:
    • id=1 (Alice, Londra)
    • id=2 (Bob, NULL)
  • RIGHT JOIN restituirà:
    • id=1 (Alice, Londra)
    • id=3 (NULL, Berlino)

In questo modo, LEFT e RIGHT JOIN conservano tutte le righe di una delle tabelle, integrandole con i dati dell'altra, mentre INNER JOIN mantiene solo le corrispondenze.