2013-12-08 1 views
1

통화 표 (모든 세계 통화 목록 포함)가 있고 currencyCurrency 및 targetCurrency (통화 표의 ID와 일치하는 정수)가있는 currencyConversion 표SQL Server와 동일한 테이블을 참조하는 두 키의 테이블에 가입하려면 어떻게합니까?

통화 표에는 ' '입력란에 사용자가 이해할 수있는 것입니다. 예 : USD

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 

제가 하위 선택을 할 수 있지만 더 효율적인 솔루션이 있는지 궁금합니다.

감사합니다,

답변

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 
관련 문제