如何使用SQL Server从引用同一表的两个键连接表?
我有一个货币表(包含所有世界货币的列表),然后是一个currencyConversion表,其中包含sourceCurrency和targetCurrency(两个整数都与货币表中的ID匹配) 货币表还有一个“代码”字段,这对用户来说是有意义的,例如美元 我想加入这些表,但无法看到如何将currencyConversion的源和目标货币ID加入到货币表中,它排除了所有内容,因为源和目标不匹配 我对这个连接的SQL是如何使用SQL Server从引用同一表的两个键连接表?,sql,sql-server,Sql,Sql Server,我有一个货币表(包含所有世界货币的列表),然后是一个currencyConversion表,其中包含sourceCurrency和targetCurrency(两个整数都与货币表中的ID匹配) 货币表还有一个“代码”字段,这对用户来说是有意义的,例如美元 我想加入这些表,但无法看到如何将currencyConversion的源和目标货币ID加入到货币表中,它排除了所有内容,因为源和目标不匹配 我对这个连接的SQL是 SELECT currencyConversion.rate, currency
SELECT currencyConversion.rate, currencyConversion.sourceCurrencyID, dbo.currencyConversion.targetCurrencyID
FROM currencyConversion INNER JOIN
currency ON dbo.currencyConversion.sourceCurrencyID = currency.id AND currencyConversion.targetCurrencyID = currency.id
我知道我可以做辅助选择,但不知道是否有更有效的解决方案
谢谢
尼克
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