查询中的SQL数据表和查找表

时间:2017-04-05 09:36:25

标签: sql linq datatable lookup

我有一个像

这样的查找表
CategoryId          Name
1                    Blue
2                    Red
3                    Orange

我有一个像

这样的数据表
Id        CategoryId1       CategoryId2
1           2                1
2           1                3

我想获得以下查询结果

Id         Category1        Category2
1            Red               Blue
2            Blue              Orange

怎么做?

2 个答案:

答案 0 :(得分:0)

SELECT [Id]
      ,ISNULL(Desc1.Name,'')
      ,ISNULL(Desc2.Name,'')
FROM table2
LEFT OUTER JOIN table1 Desc1 on Desc1.CategoryID= table2.CategoryId1
LEFT OUTER JOIN table1 Desc2 on Desc2.CategoryID = table2.CategoryId2

答案 1 :(得分:0)

假设CategoryId1CategoryId2不能为空,那么简单inner join就足够了。

SELECT t1_1.Id as Id, t1_1.Name as Category1, t1_2 as Category2
  FROM table2 t2
  INNER JOIN table1 t1_1 on t1_1.CategoryId = t2.CategoryId1
  INNER JOIN table1 t1_2 on t1_2.CategoryId = t2.CategoryId2