RIGHT JOIN e FULL JOIN

Un RIGHT JOIN mantiene ogni riga della tabella di destra. Un FULL JOIN mantiene le righe senza corrispondenza di entrambe le tabelle.

Sintassi

SELECT … FROM a RIGHT JOIN b ON a.key = b.key;
SELECT … FROM a FULL JOIN b ON a.key = b.key;
  • Dove una riga non ha corrispondenza, le colonne dell'altra tabella sono NULL.

Esempio

SELECT c.last_name, o.order_id FROM customers AS c FULL JOIN orders AS o ON o.customer_id = c.customer_id;

Ogni ordine e ogni cliente; i lati senza corrispondenza mostrano NULL.

Tabelle usate: customers, orders. Provalo in una lezione qui sotto.

Errori comuni

  • Una condizione sulla tabella di destra in WHERE elimina le righe con NULL. Mettila in ON.

Esercitati