2013-12-08 32 views
1

我有一個貨幣表(包含所有世界貨幣的列表),然後其中有一個sourceCurrency和targetCurrency(包括整數的貨幣表匹配ID的currencyConversion表。如何從兩個與SQL Server引用相同表的鍵中加入表?

貨幣表也有一個「代碼'字段,這對用戶有意義,例如USD

我想加入表格,但無法看到當我將currencyConversion的源貨幣ID和目標貨幣ID加入貨幣表時,它如何排除所有內容在源和目標相同的情況下不匹配

我的此連接的SQL是;

SELECT currencyConversion.rate, currencyConversion.sourceCurrencyID, dbo.currencyConversion.targetCurrencyID 
FROM currencyConversion INNER JOIN 
currency ON dbo.currencyConversion.sourceCurrencyID = currency.id AND currencyConversion.targetCurrencyID = currency.id 

我知道我可以做子選擇,但想知道是否有更有效的解決方案。

感謝,

尼克

回答

2
SELECT cc.rate, cc.sourceCurrencyID , cc.targetCurrencyID, 
       src.code AS 'SourceCurrencyCode', tgt.code AS 'TargetCurrencyCode' 
FROM currencyConversion cc 
INNER JOIN currency src ON cc.sourceCurrencyID = src.id 
INNER JOIN currency tgt ON cc.targetCurrencyID = tgt.id 
相關問題