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.