Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用SQL Server从引用同一表的两个键连接表?_Sql_Sql Server - Fatal编程技术网

如何使用SQL Server从引用同一表的两个键连接表?

如何使用SQL Server从引用同一表的两个键连接表?,sql,sql-server,Sql,Sql Server,我有一个货币表(包含所有世界货币的列表),然后是一个currencyConversion表,其中包含sourceCurrency和targetCurrency(两个整数都与货币表中的ID匹配) 货币表还有一个“代码”字段,这对用户来说是有意义的,例如美元 我想加入这些表,但无法看到如何将currencyConversion的源和目标货币ID加入到货币表中,它排除了所有内容,因为源和目标不匹配 我对这个连接的SQL是 SELECT currencyConversion.rate, currency

我有一个货币表(包含所有世界货币的列表),然后是一个currencyConversion表,其中包含sourceCurrency和targetCurrency(两个整数都与货币表中的ID匹配)

货币表还有一个“代码”字段,这对用户来说是有意义的,例如美元

我想加入这些表,但无法看到如何将currencyConversion的源和目标货币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
我知道我可以做辅助选择,但不知道是否有更有效的解决方案

谢谢

尼克

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