Esempio di sintassi
SELECT order_items.id, orders.order_date, order_items.price
FROM order_items
LEFT OUTER JOIN orders
ON order_items.order_id = orders.id;
Le operazioni di Join combinano le righe di due o più tabelle in base a una colonna correlata tra di esse.
Visualizzazione dei Join
SELECT * FROM `A` INNER JOIN `B`
┌────────┐
│ A ┌───┼────┐
│ │ ∩ │ │
└────┼───┘ B │
└────────┘
| Tipo di Join | Dati inclusi | Descrizione |
|---|---|---|
INNER JOIN |
∩ |
Restituisce i record con valori corrispondenti in entrambe le tabelle |
LEFT OUTER JOIN |
A + ∩ |
Restituisce tutti i record della tabella A e quelli corrispondenti dalla B |
RIGHT OUTER JOIN |
∩ + B |
Restituisce tutti i record della tabella B e quelli corrispondenti dalla A |
FULL OUTER JOIN |
A + ∩ + B |
Restituisce tutti i record quando c'è corrispondenza nella tabella sinistra o destra |
Varianti di Join e filtri
Left Join escludendo l'intersezione
SELECT * FROM A
LEFT JOIN B ON A.key = B.key
WHERE B.key IS NULL;
Right Join escludendo l'intersezione
SELECT * FROM A
RIGHT JOIN B ON A.key = B.key
WHERE A.key IS NULL;
Full Outer Join escludendo l'intersezione
SELECT * FROM A
FULL OUTER JOIN B ON A.key = B.key
WHERE A.key IS NULL OR B.key IS NULL;