Oracle äußere Verknüpfungen sind eine Möglichkeit, die Anzeige von Daten ohne zusätzliche Filterung von Datensätzen. Wenn zwei Tabellen Daten enthalten , gibt es eine Wahrscheinlichkeit, dass eine der Tabellen können keine Aufzeichnungen . Dies kann nur geschehen , wenn es keine Einschränkungen für die Tabellen angeben, dass Datensätze vorhanden sein müssen sind . Zum Beispiel, wenn ein Unternehmen hat eine Reihe von Kunden , ist es möglich, dass zu jeder Zeit ein Kunde nicht kann keine Artikel bestellt haben. Die umgekehrte Situation kann auch wahr sein, dass Produkte nicht haben ihnen zugeordneten Kunden . Anleitung
1
Wählen Sie zwei Tabellen aus der Oracle-Datenbank , für die es in einem bestehenden Datensätze sein kann , aber nicht unbedingt in der anderen. Die Tabelle mit den gegebenenfalls fehlende Datensätze werden als äußere Tabelle in diesem Fall bekannt sein.
2
Wählen Sie die Reihenfolge der Abfrage , in Bezug auf die Entscheidung , welche der Tabellen in der Abfrage (links oder angegeben rechts) bilden die äußere Verknüpfung . Ein Beispiel macht dies deutlicher wie folgt:
wählen c.customerlastname ,
p.ProductID
Kunde c , p productorders
< p> wo c.CustomerID = p.customerid ;
von dieser Abfrage eine Entscheidung getroffen werden , benötigen Sie eine Liste aller Bestellungen von Produkten mit (oder ohne ) Kunden oder die umgekehrte Situation , dh eine Liste der Kunden mit oder ohne orderten ?
3
Platz ein (+ )-Anzeige , um die Tabelle, aus der optionalen Zeilen dh mit Aufzeichnungen oder nicht zurückgegeben werden, zu identifizieren. In diesem Beispiel wird die Tabelle products kann oder auch nicht haben Aufträge gegen sie , und daher wird dies eine linke äußere Verknüpfung sein :
wählen c.customerlastname ,
p.ProductID
< p >
Kunde c , p productorders
wo c.CustomerID = p.customerid (+);
Wenn die Abfrage benötigt, um Produkte, die nicht gegen Kunden können feststellen, sie , der where-Klausel wäre:
wo c.CustomerID (+) = p.customerid ;
4
Führen Sie die Abfrage und das Ergebnis . Das Beispiel links Outer-Join werden Datensätze zurück, die der folgenden ähnelt :
c.customerlastname 123423
Jones
Carr 89654
Bernardstein 66543
Beachten Sie, dass für diese linke äußere Verknüpfung , der einzige Kunde in dieser Liste ohne Auftrag " Jones ist . "