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.

Esercitati