我有一个像
这样的查找表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
怎么做?
答案 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)
假设CategoryId1
和CategoryId2
不能为空,那么简单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