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 tabeli T1, wartości kolumn z wiersza tabeli T2 są łączone z wartością NULL dla każdej kolumny wiersza z tabeli T1, 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

.

admin

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.

lg