Szybka pomoc

Ściągawka z SQL Joins

Szybki przewodnik po złączeniach tabel SQL: INNER JOIN, LEFT JOIN, RIGHT JOIN i FULL OUTER JOIN ze składnią i logiką Venna.

· Opublikowano

Przykład składni

SELECT order_items.id, orders.order_date, order_items.price
FROM order_items
LEFT OUTER JOIN orders
  ON order_items.order_id = orders.id;

Złączenia (Joins) łączą wiersze z dwóch lub więcej tabel na podstawie powiązanej kolumny między nimi.

Wizualizacja złączeń

SELECT * FROM `A` INNER JOIN `B`
┌────────┐
│ A  ┌───┼────┐
│    │ ∩ │    │
└────┼───┘  B │
     └────────┘
Typ złączenia Zawarte dane Opis
INNER JOIN ∩ Zwraca rekordy z pasującymi wartościami w obu tabelach
LEFT OUTER JOIN A + ∩ Zwraca wszystkie rekordy z tabeli A oraz pasujące z tabeli B
RIGHT OUTER JOIN ∩ + B Zwraca wszystkie rekordy z tabeli B oraz pasujące z tabeli A
FULL OUTER JOIN A + ∩ + B Zwraca wszystkie rekordy, gdy istnieje dopasowanie w lewej lub prawej tabeli

Warianty złączeń i filtry

Left Join z wyłączeniem części wspólnej

SELECT * FROM A
LEFT JOIN B ON A.key = B.key
WHERE B.key IS NULL;

Right Join z wyłączeniem części wspólnej

SELECT * FROM A
RIGHT JOIN B ON A.key = B.key
WHERE A.key IS NULL;

Full Outer Join z wyłączeniem części wspólnej

SELECT * FROM A
FULL OUTER JOIN B ON A.key = B.key
WHERE A.key IS NULL OR B.key IS NULL;

Powiązane tematy