Exemplu de sintaxă
SELECT order_items.id, orders.order_date, order_items.price
FROM order_items
LEFT OUTER JOIN orders
ON order_items.order_id = orders.id;
Operațiile Join combină rânduri din două sau mai multe tabele pe baza unei coloane comune între ele.
Vizualizarea operațiilor Join
SELECT * FROM `A` INNER JOIN `B`
┌────────┐
│ A ┌───┼────┐
│ │ ∩ │ │
└────┼───┘ B │
└────────┘
| Tip Join | Date incluse | Descriere |
|---|---|---|
INNER JOIN |
∩ |
Returnează înregistrările cu valori potrivite în ambele tabele |
LEFT OUTER JOIN |
A + ∩ |
Returnează toate înregistrările din tabelul A și pe cele potrivite din tabelul B |
RIGHT OUTER JOIN |
∩ + B |
Returnează toate înregistrările din tabelul B și pe cele potrivite din tabelul A |
FULL OUTER JOIN |
A + ∩ + B |
Returnează toate înregistrările când există potrivire în tabelul stâng sau drept |
Variante Join și filtre
Left Join fără intersecție
SELECT * FROM A
LEFT JOIN B ON A.key = B.key
WHERE B.key IS NULL;
Right Join fără intersecție
SELECT * FROM A
RIGHT JOIN B ON A.key = B.key
WHERE A.key IS NULL;
Full Outer Join fără intersecție
SELECT * FROM A
FULL OUTER JOIN B ON A.key = B.key
WHERE A.key IS NULL OR B.key IS NULL;