2013-08-05 14 views
5

Ho due tabelle, Transazione e Master. La tabella delle transazioni mostra un ID da e per attività. Il master mostra l'ID dell'attività e un nome. Da e verso id usano la stessa tabella principale per associare l'id e il nome dell'attività. Quello che mi piacerebbe fare è prendere il distinto da e ai valori e visualizzarli con il nome associato.Sintassi SQL più join?

La query originale era

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

cosa ho bisogno è qualcosa in cui a.from è seguito da b.name e a.to è seguito da b.name

So che devo avere un join ma ho bisogno del join per applicare a ciascuno dei distinti valori.

Nel concetto mi piacerebbe fare 2 join con uno su ciascuno dei valori a.ma ma non sono sicuro come delineare il da e ai valori.

+1

Unisciti al tavolo Master due volte. Ad esempio: http://stackoverflow.com/a/4267979/12601 – Greg

+0

È possibile aggiungere un semplice esempio con, per esempio, 3 colonne da ciascuna tabella e un esempio dell'output desiderato dalla query? – user1676075

risposta

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

Questo è anche ciò che Greg ha suggerito. Dando alla stessa tabella due alias, sono in grado di unire i due campi indipendentemente l'uno dall'altro. Grazie a tutti coloro che hanno aiutato. –