JOIN (INNER e LEFT)
Combina le righe di due tabelle dove una chiave corrisponde. Un inner join mantiene solo le corrispondenze; un left join mantiene ogni riga della tabella di sinistra.
Sintassi
SELECT … FROM a JOIN b ON a.key = b.key;SELECT … FROM a LEFT JOIN b ON a.key = b.key;
Esempio
SELECT c.last_name, o.order_date FROM customers AS c JOIN orders AS o ON o.customer_id = c.customer_id;
Ogni ordine con il cognome del suo cliente. Gli ordini senza cliente vengono esclusi.
Tabelle usate: customers, orders. Provalo in una lezione qui sotto.
Errori comuni
- Dimenticare la condizione ON crea un cross join: ogni riga abbinata con ogni altra riga.
- Filtrare la tabella di destra in WHERE trasforma di nuovo un LEFT JOIN in un inner join.