2016-05-18 18 views
0

Gibt es eine Möglichkeit zwei Tabellen gegen mehrere Spalten zum Beispiel in der ersten Tabelle zu verbinden haben wir: -SQL Zwei Tabellen gegen mehrere Spalten

Headers = Name, AB1, AB2, AB3, AB4 
Data = Lee, A, B, C ,D 

zweite Tabelle haben wir: -

Headers = Type, Time 
Data = A,1 
Data = B,2 
Data = C,3 
Data = D,4 

Ich suche, beide Tabellen zu verbinden, so bekomme ich die folgenden, so dass jede der AB-Spalten den Zeitwert von der anderen Tabelle nachschlagen würde.

Name, AB1, AB2, AB3, AB4, AB1_time, AB2_time, AB3_time, AB4_time, 
Lee, A, B, C, D, 1, 2, 3, 4 

Ich war auf der Suche schließt sich mehrere zu tun, aber nicht wirklich wissen, wie man am besten, darüber zu gehen. Die obigen Daten sind ein einfaches Beispiel, aber in Wirklichkeit habe ich zwei massive SQL-Tabellen, die dann mit anderen Datensätzen kollidieren.

+0

Lesen Sie mehr über Pivot –

+0

Können Sie Ihre Frage erweitern, um mehr Daten enthalten? Eine Antwort für dieses triviale Beispiel ist möglicherweise nicht robust gegenüber einem größeren Datensatz. –

+0

Ich habe die oben genannten aktualisiert und ja Sie sind richtig, das obige Beispiel soll die Frage vereinfachen. In Wirklichkeit sind diese Datentabellen jedoch massiv. –

Antwort

0

Sie mehrere verwenden schließt sich wie folgt aus:

select t1.*, t2a.time. t2b.time, t2c.time, t2d.time 
from t1 left join 
    t2 t2a 
    on t1.ab1 = t2a.type left join 
    t2 t2b 
    on t1.ab2 = t2b.type left join 
    t2 t2c 
    on t1.ab3 = t2c.type left join 
    t2 t2d 
    on t1.ab4 = t2d.type ;