linke äußere Verbindung in t-sql

8

Ich habe die folgenden zwei Tabellen. Ich verwende SQL Server 2008 R2

%Vor%

Dies gibt die Ergebnismenge zurück

%Vor%

Ich möchte das folgende Ergebnis festgelegt haben

%Vor%

Im Moment erfasse ich dies, indem ich eine neue Tabelle mit einem Kreuz-Join wie dieser erzeuge und dann einen Outer-Join mache

%Vor%

Gibt es einen besseren Weg, dies zu tun?

Danke

    
Satfactor 21.12.2012, 16:26
quelle

2 Antworten

3

Um zu bekommen, was Sie wollen, brauchen Sie eine "treibende" Tabelle. Das heißt, Sie möchten eine vollständige Liste aller Kombinationen und dann zu den anderen Tabellen, um die Übereinstimmungen zu erhalten. Hier ist eine Möglichkeit:

%Vor%     
Gordon Linoff 21.12.2012, 16:33
quelle
0

Was Sie suchen, ist ein kartesisches Produkt der Werte in # tbl1 und die Werte in der ID-Spalte in # tbl2. Da die Werte in # tbl2.id nicht eindeutig sind, ist es möglicherweise besser, eine zusätzliche Tabelle mit einer Zeile für jeden # tbl2.id-Wert zu erstellen. Dann können Sie diese Lösung verwenden:

%Vor%

Wenn das keine Option ist, verwenden Sie stattdessen:

%Vor%     
Sebastian Meine 21.12.2012 16:49
quelle