SQL选择引用基于两列的查找

时间:2010-12-15 16:55:32

标签: sql-server

我很难为此构建正确的SQL语句。

示例数据(简单视图):

MasterTable
Product    DebitCode   CreditCode
Camera         1           4
Computer       2           5
Cellphone      3           6


LookupTable
Code    Description
 1      Debit Camera 
 2      Debit Computer 
 3      Debit Cellphone
 4      Credit Camera
 5      Credit Computer
 6      Credit Cellphone

使用Lookup表(或CreditCode)中的Code为DebitCode创建内部连接没有问题,但是当我尝试使用两者时,我会为每个获得两个条目。

我需要检索我的数据,以便借记代码和信用代码的描述都在一行中。

感谢。

1 个答案:

答案 0 :(得分:3)

你需要两个单独的连接到你的LookupTable,每个代码一个。

select mt.Product, 
       lt1.Description as DebitDescription, 
       lt2.Description as CreditDescription
    from MasterTable mt
        inner join LookupTable lt1
            on mt.DebitCode = lt1.Code
        inner join LookupTable lt2
            on mt.CreditCode = lt2.Code