查询中的SQL数据表和查找表
我有一个查找表,如查询中的SQL数据表和查找表,sql,linq,datatable,lookup,Sql,Linq,Datatable,Lookup,我有一个查找表,如 CategoryId Name 1 Blue 2 Red 3 Orange 我有一个数据表,比如 Id CategoryId1 CategoryId2 1 2 1 2 1 3 我想得到以下查询结果 Id
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
如何做到这一点?假设
CategoryId1
和CategoryId2
不能为空,简单的内部联接就足够了
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
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
虽然这段代码可能会回答这个问题,但人们应该始终添加一个解释,说明为什么/如何解决这个问题