我有两张表格如下
表1:其中有多个列引用第二个表中的值。
tbale2:查找表,其中为上表中列的每个可能值都有一行
我想要做的是从表2中的ValueID查找表1中的ItemID,ORDIG,CatID,MediaID中的值并返回ValueName
所以最后我的结果应该是
ItemID OrgID CatID MediaID
i859049 Singapore Full 0001edf
答案 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