
Jeśli kiedykolwiek pracowałeś z bazami danych SQL, na pewno spotkałeś się z pojęciem JOIN. Wśród różnych typów złączeń RIGHT JOIN jest jednym z tych, które mogą wydawać się mniej intuicyjne na pierwszy rzut oka. W tym artykule wyjaśnię dokładnie, jak działa RIGHT JOIN w języku SQL, oraz pokażę jego praktyczne zastosowanie.
Czym jest RIGHT JOIN w SQL?
RIGHT JOIN to rodzaj złączenia tabel, który zwraca wszystkie wiersze z tabeli prawej (tzw. right table), a jeśli nie ma dla nich odpowiedników w tabeli lewej (left table), to wartości tych kolumn będą uzupełnione wartościami NULL
. Oznacza to, że RIGHT JOIN jest odwrotnością LEFT JOIN.
Składnia RIGHT JOIN
Podstawowa składnia RIGHT JOIN wygląda następująco:
SELECT kolumny
FROM tabela1
RIGHT JOIN tabela2
ON tabela1.kolumna = tabela2.kolumna;
Warto zwrócić uwagę, że tabela2 (znajdująca się po RIGHT JOIN) zostanie uwzględniona w całości, niezależnie od dopasowań z tabelą1.
Przykładowa baza danych
Aby dobrze zilustrować działanie RIGHT JOIN, załóżmy, że mamy dwie tabele:
Klienci | Zamówienia | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
Widzimy, że mamy klienta, który nie złożył zamówienia (Jan, ID 1), a także zamówienie, które nie pasuje do żadnego klienta (ID klienta 4).
Zapytanie z użyciem RIGHT JOIN
Przeanalizujmy teraz, jak RIGHT JOIN zadziała w praktyce:
SELECT klienci.ID_klienta, klienci.Imię, zamówienia.ID_zamówienia, zamówienia.Produkt
FROM klienci
RIGHT JOIN zamówienia
ON klienci.ID_klienta = zamówienia.ID_klienta;
Wynikiem tego zapytania będzie:
ID_klienta | Imię | ID_zamówienia | Produkt |
---|---|---|---|
2 | Maria | 101 | Laptop |
2 | Maria | 102 | Myszka |
NULL | NULL | 103 | Telefon |
Co oznacza wynik?
- Maria została połączona ze swoimi zamówieniami (ID 101 i 102).
- Jan i Piotr nie pojawiają się, ponieważ RIGHT JOIN uwzględnia tylko prawą tabelę.
- Zamówienie o ID 103 nie ma przypisanego klienta, więc wartości dla
ID_klienta
iImię
sąNULL
.
Kiedy warto stosować RIGHT JOIN?
RIGHT JOIN jest przydatny w kilku przypadkach, m.in.:
- Gdy chcemy zobaczyć wszystkie rekordy z prawej tabeli, nawet jeśli nie mają dopasowań w tabeli lewej.
- Gdy analizujemy poprawność danych (np. identyfikujemy zamówienia bez przypisanych klientów).
- Gdy źródłowa tabela danych ma określoną hierarchię (np. hierarchia użytkowników i ich działań).
RIGHT JOIN vs LEFT JOIN
Skoro RIGHT JOIN jest odwrotnością LEFT JOIN, warto wiedzieć, kiedy lepiej użyć jednego zamiast drugiego.
LEFT JOIN | RIGHT JOIN |
---|---|
Zwraca wszystkie rekordy z lewej tabeli. | Zwraca wszystkie rekordy z prawej tabeli. |
Używane, gdy chcemy zachować dane z lewej tabeli nawet bez dopasowań. | Używane, gdy ważniejsze są dane z tabeli prawej. |
Łatwiejsze w interpretacji, bo często tabela główna znajduje się po lewej. | Rzadziej używane, ale czasem konieczne ze względu na strukturę bazy. |
Podsumowanie
RIGHT JOIN w SQL pozwala na pobranie wszystkich danych z prawej tabeli, nawet jeśli nie mają one dopasowań w lewej tabeli. To przydatna opcja w analizie danych, szczególnie gdy chcemy zobaczyć, które rekordy nie posiadają powiązań w innej tabeli.
W większości przypadków lepiej sprawdzi się LEFT JOIN, ale warto znać RIGHT JOIN i wiedzieć, jak go stosować, bo to może się przydać w nietypowych sytuacjach.
Inny ciekawy artykuł:
Jak działa LEFT JOIN w języku SQL? Przykłady zastosowania
Opanuj SQL z moim kursem!
Poznasz zarówno podstawy, jak i zaawansowane zapytania analityczne (CTE, subqueries, window functions). Nauczysz się pracować na różnych silnikach – na kursie pracujemy zarówno na MySQL, jak i na Postgres. Wszystko zainstalujemy na Twoim komputerze, plus dostaniesz mnóstwo zestawów danych do ćwiczeń.
Zostań analitykiem danych – dołącz do KajoDataSpace!
Najlepsza ścieżka do zawodu analityka danych. Dostęp do pełnych wersji kursów online z Excela, SQLa, Tableau i Pythona z certyfikatami + specjalistycznych webinarów z PowerBI.
Ekskluzywana ale pomagająca sobie społeczność.
Ponad 61 godzin materiałów video.
Spotkania LIVE co miesiąc.
Mój osobisty mentoring.