SQL Join在一个表中有多个列,另一个表中有一列

时间:2016-04-12 17:49:22

标签: sql-server join

我有两张表格如下

表1:其中有多个列引用第二个表中的值。

tbale2:查找表,其中为上表中列的每个可能值都有一行

我想要做的是从表2中的ValueID查找表1中的ItemID,ORDIG,CatID,MediaID中的值并返回ValueName

所以最后我的结果应该是

ItemID   OrgID  CatID    MediaID
i859049  Singapore  Full  0001edf

1 个答案:

答案 0 :(得分:2)

您需要为所需的每个值加入一次查找表,但可能需要使用LEFT而不是INNER联接,因为值可能为空。

SELECT 
    T1.ItemId,
    Items.ValueName AS ItemName,
    T1.OrgID,
    Orgs.ValueName AS OrgName,
    T1.CatID,
    Cats.ValueName AS CatName,
    T1.MediaID,
    Media.ValueName AS MediaName
FROM Table1 T1
    LEFT OUTER JOIN Table2 Items
        ON T1.ItemId = Items.ValueID
    LEFT OUTER JOIN Table2 Orgs
        ON T1.OrgId = Orgs.ValueID
    LEFT OUTER JOIN Table2 Cats
        ON T1.CatId = Cats.ValueID
    LEFT OUTER JOIN Table2 Media
        ON T1.MediaId = Media.ValueID