Zusammenfassung: In diesem Tutorium lernen Sie, wie Sie den RIGHT OUTER JOIN
in Oracle verwenden, um zwei oder mehr Tabellen zu verbinden.
Übersicht über RIGHT OUTER JOIN in Oracle
Angenommen, wir haben zwei Tabellen T1
und T2
. Die folgende Anweisung zeigt, wie man diese beiden Tabellen mithilfe der RIGHT OUTER JOIN
-Klausel in Oracle verbindet:
In dieser Anweisung sind T1
und T2
die linke bzw. rechte Tabelle.
Das Schlüsselwort OUTER
ist optional, daher sind RIGHT OUTER JOIN
und RIGHT JOIN
identisch.
So funktioniert RIGHT OUTER JOIN
.
Jede Zeile aus der T1
Tabelle wird mit Zeilen aus der T2
Tabelle verglichen:
- Wenn ein Paar von Zeilen das Verknüpfungsprädikat erfüllt, werden die Spaltenwerte beider Zeilen zu einer Ergebniszeile kombiniert, die dann in die Ergebnismenge aufgenommen wird.
- Falls eine Zeile in der Tabelle
T2
mit keiner Zeile in der TabelleT1
übereinstimmt, werden die Spaltenwerte der Zeile der TabelleT2
mit einem NULL-Wert für jede Spalte der Zeile aus der TabelleT1
kombiniert, um die Ergebniszeile zu bilden, die dann ebenfalls in die Ergebnismenge aufgenommen wird.
Mit anderen Worten, ein Right Outer Join gibt alle Zeilen aus der rechten Tabelle und auch die passenden Zeilen aus der linken Tabelle zurück.
Oracle RIGHT OUTER JOIN Beispiele
Wir werden die orders
und employees
Tabellen in der Beispieldatenbank für die Demonstration verwenden:
In diesem Diagramm ist ein Verkäufer für einen oder mehrere Kundenaufträge zuständig. Es kann jedoch sein, dass einige Kundenaufträge keinem Verkäufer zugeordnet sind.
Das folgende Beispiel ruft alle Verkäufer und ihre Kundenaufträge ab, falls vorhanden:
Das Ergebnis enthält alle Mitarbeiter mit der Berufsbezeichnung Sales Representative
und ihre Aufträge.
Wenn ein Verkäufer für keinen Kundenauftrag zuständig ist, wie z.B. Alice Wells
, Charlotte Webb
, werden die Spalten order_id
und status
mit NULL-Werten gefüllt.
Oracle RIGHT OUTER JOIN mit USING-Klausel
Ähnlich wie bei anderen Joins, wie z.B. INNER JOIN
, LEFT JOIN
, können Sie die USING
-Klausel verwenden, um anzugeben, welche Spalte beim Verbinden von Tabellen auf Gleichheit getestet werden soll.
Im Folgenden wird die Syntax der RIGHT OUTER JOIN
mit der USING
-Klausel veranschaulicht:
In dieser Abfrage müssen die in der USING
-Klausel aufgeführten Spalten in den beiden Tabellen T1
und T2
vorhanden sein.
Die folgende Anweisung ist äquivalent zu der obigen:
Die folgende Anweisung demonstriert die Verwendung von RIGHT OUTER JOIN
mit der USING
-Klausel:
In diesem Beispiel werden alle Kunden in die Ergebnismenge aufgenommen. Wenn ein Kunde keinen Kundenauftrag hat, werden die Spalten order_id
und status
mit NULL-Werten gefüllt.
Oracle RIGHT JOIN: Bedingung in ON vs. WHERE-Klausel
Die folgende Anweisung ruft die Mitarbeiter- und Auftragsdaten des Verkäufers mit der ID 57 ab.
Die folgende Anweisung platziert die Bedingung in der WHERE
-Klausel statt in der ON
-Klausel:
Die Abfrage liefert alle Mitarbeiter, aber nur die Mitarbeiter-ID 57 hat die zugehörigen Auftragsdaten.
Ein Hinweis, dass in Bezug auf die INNER JOIN
, die Bedingung in der ON
-Klausel platziert ist, hat die gleiche Wirkung wie in der WHERE
-Klausel.
In diesem Tutorial haben Sie gelernt, wie man die RIGHT OUTER JOIN
in Oracle verwendet, um Daten aus mehreren Tabellen abzufragen.
- War dieses Tutorial hilfreich?
- JaNein