Left Join, der immer Nulldatensätze enthält

8

Ich verwende Oracle 11gR2 und ich versuche, eine Abfrage zu schreiben, die Adressdaten aus zwei Tabellen zurückgibt, CUSTOMERS und LOCATIONS . Ein bestimmter Kunde kann verschiedene Standorte haben (oder auch nicht), jeder mit einer eigenen Adresse.

Ich möchte die Adresse für jeden Kunden und alle seine Standorte zurückgeben. Zum Beispiel, wenn die Tabellen Daten enthalten wie:

%Vor%

Dann möchte ich, dass die Ergebnisse wie folgt aussehen:

%Vor%

Mein erster Gedanke war ungefähr so:

%Vor%

Das Problem dabei ist, dass wenn ein Kunde über Standorte verfügt, er keine Zeile mit Nullwerten für Standortdaten zurückgibt, sodass ich keine Zeile mit der Adresse in der Tabelle CUSTOMERS erhalte. Es gibt mir so etwas:

%Vor%

Es fehlt die New York -Adresse für customer 1 . Ich habe das versucht ...

%Vor%

Aber es gab mir die gleichen Ergebnisse wie die erste Abfrage. Gibt es eine Möglichkeit, einen Null-Datensatz für die zweite Tabelle zurückzugeben, selbst wenn die Join-Bedingung übereinstimmt?

    
Mike 28.12.2010, 18:03
quelle

3 Antworten

10

Sie brauchen hier überhaupt keinen Beitritt:

%Vor%     
Quassnoi 28.12.2010, 18:07
quelle
1

Wenn Sie die beiden Tabellen verbinden möchten, selbst wenn eine Nichtübereinstimmung besteht, müssen Sie IS NULL für Ihre verbundenen Spalten verwenden.

Zum Beispiel.

%Vor%

.

%Vor%

.

%Vor%

Dies bringt Ergebnisse mit NULL

zurück     
markthewizard1234 16.11.2015 09:50
quelle
0

Sie können einen vollständigen äußeren Join versuchen. Zum Beispiel:

%Vor%     
Dan Iverson 28.12.2010 18:18
quelle

Tags und Links