2013-08-05 8 views
5

Ich habe zwei Tabellen, Transaktion und Master. Die Transaktionstabelle zeigt eine Von-zu-Aktivitäts-ID. Der Master zeigt die Aktivitäts-ID und einen Namen an. Die from- und to-ID verwenden dieselbe Master-Tabelle, um die Aktivitäts-ID und den Namen zu verknüpfen. Was ich tun möchte, ist, die verschiedenen Werte von und zu zu nehmen und sie mit dem zugehörigen Namen anzuzeigen.SQL-Syntax mehrere Joins?

Die ursprüngliche Abfrage war

select distinct a.from, a.to from Transaction a 

Was ich brauche ist etwas, wo a.from von b.name und a.to gefolgt wird von b.name

folgt ich weiß, dass ich zu habe einen Join, aber ich brauche den Join, um ihn auf jeden einzelnen a.values ​​anzuwenden.

Im Konzept möchte ich 2 Joins mit einem auf jedem der a.values ​​tun, aber ich bin mir nicht sicher, wie man die von und zu Werten abgrenzen.

+1

Verbinden Sie die Master-Tabelle zweimal. Zum Beispiel: http://stackoverflow.com/a/4267979/12601 – Greg

+0

Können Sie ein einfaches Beispiel mit sagen wir 3 Spalten aus jeder Tabelle und ein Beispiel für die gewünschte Ausgabe aus der Abfrage hinzufügen? – user1676075

Antwort

7
select distinct a.from, f.name as FromName, a.to, t.name as ToName 
from Transaction a 
join Master F on a.from = f.id 
join Master T on a.to = f.id 
+0

Das hat Greg auch vorgeschlagen. Indem ich der gleichen Tabelle zwei Aliase gebe, bin ich in der Lage, die zwei Felder unabhängig voneinander zu verbinden. Danke an alle, die geholfen haben. –