Nell’esercizio precedente abbiamo usato i join per abbinare i nomi dei personaggi ai loro attori. Quando usi INNER JOIN si parla di “inner join” perché restituisce solo le righe in cui esistono dati sia per il nome del personaggio sia per l’attore.
Magari però vuoi ottenere tutti i nomi dei personaggi, anche quando non ci sono dati corrispondenti sul nome dell’attore. Un LEFT JOIN restituisce tutti i dati della prima tabella (quella “di sinistra”) e, se non ci sono dati corrispondenti nella seconda, restituisce NULL per quelle colonne.
Usare i left join fra personaggi e serie TV sarebbe così:
SELECT character.name, tv_show.name
FROM character
LEFT JOIN character_tv_show
ON character.id = character_tv_show.character_id
LEFT JOIN tv_show
ON character_tv_show.tv_show_id = tv_show.id;
Riesci a usare i left join per abbinare i nomi dei personaggi agli attori che li interpretano? Seleziona le colonne: character.name, actor.name
Nota: altre varianti di SQL hanno RIGHT JOIN e OUTER JOIN, ma queste funzionalità non esistono in SQLite.