JOIN: LEFT/RIGHT/INNER/OUTER

Bazy danych
Oleksandr Vykhor
10-06-2021 08:20:00


SQL Joins

SQL JOIN — to operacja umożliwiająca łączenie danych z wielu tabel na podstawie powiązanych kolumn.

Główne typy JOIN INNER

  • JOIN – zwraca tylko wiersze, które mają dopasowania w obu tabelach.
  • LEFT JOIN (LEFT OUTER JOIN) – zwraca wszystkie wiersze z lewej tabeli oraz pasujące wiersze z prawej tabeli.
  • RIGHT JOIN (RIGHT OUTER JOIN) – zwraca wszystkie wiersze z prawej tabeli oraz pasujące wiersze z lewej tabeli.
  • FULL JOIN (FULL OUTER JOIN) – łączy
  • LEFT JOIN i RIGHT JOIN – zwraca wszystkie wiersze z obu tabel.

Dodatkowe JOINs CROSS JOIN – Iloczyn kartezjański: każdy wiersz z pierwszej tabeli jest łączony ze wszystkimi wierszami z drugiej tabeli. SELF JOIN – tabela jest łączona sama ze sobą. NATURAL JOIN – automatycznie łączy tabele na podstawie kolumn o tych samych nazwach (niezalecane).

Przykłady:

1. INNER JOIN Zwraca tylko pasujące rekordy:

SELECT users.id, users.name, orders.amount FROM users INNER JOIN orders ON users.id = orders.user_id;

2. LEFT JOIN Wszyscy użytkownicy + ich zamówienia (jeśli istnieją):

SELECT users.id, users.name, orders.amount FROM users LEFT JOIN orders ON users.id = orders.user_id;

3. RIGHT JOIN Wszystkie zamówienia + użytkownicy (jeśli istnieją):

SELECT users.id, users.name, orders.amount FROM users RIGHT JOIN orders ON users.id = orders.user_id;

4. FULL JOIN Wszyscy użytkownicy i zamówienia, nawet jeśli nie są powiązane:

SELECT users.id, users.name, orders.amount FROM users FULL JOIN orders ON users.id = orders.user_id;

5. CROSS JOIN Iloczyn kartezjański:

SELECT users.name, products.name FROM users CROSS JOIN products;

 

Назад