Podsumowanie: w tym poradniku dowiesz się, jak używać funkcji RIGHT OUTER JOIN
w Oracle do łączenia dwóch lub więcej tabel.
Overview of RIGHT OUTER JOIN in Oracle
Załóżmy, że mamy dwie tabele T1
i T2
, następujące wyrażenie pokazuje, jak dołączyć do tych dwóch tabel przy użyciu klauzuli RIGHT OUTER JOIN
w Oracle:
W tym wyrażeniu, T1
i T2
są odpowiednio lewą i prawą tabelą.
Słowo kluczowe OUTER
jest opcjonalne dlatego RIGHT OUTER JOIN
i RIGHT JOIN
są takie same.
Oto jak działa RIGHT OUTER JOIN
.
Każdy wiersz z tabeli T1
jest porównywany z wierszami z tabeli T2
:
- Jeśli para wierszy spełnia predykat join, wartości kolumn obu wierszy są łączone w celu utworzenia wiersza wynikowego, który jest następnie włączany do zbioru wyników.
- W przypadku gdy wiersz w tabeli
T2
nie pasuje do żadnego wiersza w tabeliT1
, wartości kolumn z wiersza tabeliT2
są łączone z wartością NULL dla każdej kolumny wiersza z tabeliT1
, aby utworzyć wiersz wynikowy, który jest następnie również zawarty w zbiorze wyników.
Innymi słowy, złączenie zewnętrzne prawe zwraca wszystkie wiersze z prawej tabeli, a także pasujące wiersze z lewej tabeli.
Oracle RIGHT OUTER JOIN przykłady
Do demonstracji użyjemy tabel orders
i employees
w przykładowej bazie danych:
W tym schemacie sprzedawca jest odpowiedzialny za jedno lub więcej zleceń sprzedaży. Jednak za niektóre zlecenia sprzedaży może nie odpowiadać żaden sprzedawca.
Następujący przykład pobiera wszystkich sprzedawców i ich zlecenia sprzedaży, jeśli istnieją:
Wynik zawiera wszystkich pracowników, których nazwa stanowiska to Sales Representative
oraz ich zlecenia.
Jeśli sprzedawca nie jest odpowiedzialny za żadne zamówienie sprzedaży, takie jak Alice Wells
, Charlotte Webb
, kolumny order_id
i status
są wypełnione wartościami NULL.
Oracle RIGHT OUTER JOIN with USING clause
Podobnie jak w przypadku innych złączeń, takich jak INNER JOIN
, LEFT JOIN
, można użyć klauzuli USING
, aby określić, która kolumna ma być testowana na równość podczas łączenia tabel.
Następująca ilustracja przedstawia składnię zapytania RIGHT OUTER JOIN
z klauzulą USING
:
W tym zapytaniu kolumny wymienione w klauzuli USING
muszą występować w obu tabelach T1
i T2
.
Następujące stwierdzenie jest równoważne powyższemu:
Następujące stwierdzenie demonstruje sposób użycia RIGHT OUTER JOIN
z klauzulą USING
:
W tym przykładzie wszyscy klienci są uwzględniani w zbiorze wyników. Jeśli klient nie ma zamówienia sprzedaży, kolumny order_id
i status
są wypełniane wartościami NULL.
Oracle RIGHT JOIN: warunek w klauzuli ON vs. WHERE
Następująca instrukcja pobiera dane pracownika i zamówienia sprzedawcy o id 57.
Następująca instrukcja umieszcza warunek w klauzuli WHERE
zamiast w klauzuli ON
:
Kwerenda zwróciła wszystkich pracowników, ale tylko pracownik o id 57 miał powiązane dane zamówienia.
Uwaga, że w odniesieniu do INNER JOIN
warunek umieszczony w klauzuli ON
ma taki sam skutek, jak umieszczony w klauzuli WHERE
.
W tym samouczku dowiedziałeś się, jak używać RIGHT OUTER JOIN
w Oracle do odpytywania danych z wielu tabel.
- Czy ten samouczek był pomocny?
- TakNie
.