Jak działa RIGHT JOIN w języku SQL? Przykłady zastosowania

Jak działa RIGHT JOIN w języku SQL? Przykłady zastosowania

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
ID_klienta Imię
1 Jan
2 Maria
3 Piotr
ID_zamówienia ID_klienta Produkt
101 2 Laptop
102 2 Myszka
103 4 Telefon

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 i ImięNULL.

Kiedy warto stosować RIGHT JOIN?

RIGHT JOIN jest przydatny w kilku przypadkach, m.in.:

  1. Gdy chcemy zobaczyć wszystkie rekordy z prawej tabeli, nawet jeśli nie mają dopasowań w tabeli lewej.
  2. Gdy analizujemy poprawność danych (np. identyfikujemy zamówienia bez przypisanych klientów).
  3. 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

KajoDataSpace