【问题标题】:How can I join a table from two keys referencing same table with SQL Server?如何使用 SQL Server 从引用同一个表的两个键连接一个表?
【发布时间】:2013-12-08 21:57:36
【问题描述】:

我有一个货币表(包含所有世界货币的列表),然后是一个 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

我知道我可以进行子选择,但想知道是否有更有效的解决方案。

谢谢,

尼克

【问题讨论】:

    标签: sql sql-server


    【解决方案1】:
    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 
    

    【讨论】:

      猜你喜欢
      • 2019-12-23
      • 1970-01-01
      • 2021-11-28
      • 2017-01-16
      • 1970-01-01
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多