JOIN: LEFT/RIGHT/INNER/OUTER
.png?locale=pl)
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;
Назад