Vb.net 联接2个表并只显示活动列

Vb.net 联接2个表并只显示活动列,vb.net,linq,linq-to-sql,linq-to-entities,Vb.net,Linq,Linq To Sql,Linq To Entities,我有两个表,表1有一个列来存储表2的列名。表1数据如下: ID | Desc | Table2ColName | Active ------------------------------------- 1 | 1 Day | D1 | Yes 2 | 2 Days | D2 | No 3 | 3 Days | D3 | Yes ID | ShopName | D1 | D2 | D3 ----

我有两个表,表1有一个列来存储表2的列名。表1数据如下:

 ID | Desc   | Table2ColName | Active
-------------------------------------
 1  | 1 Day  |      D1       |  Yes
 2  | 2 Days |      D2       |  No
 3  | 3 Days |      D3       |  Yes
 ID | ShopName |  D1  | D2  | D3
----------------------------------
 1  |   Sp1    |  100 | 80  | 120
ID | ShopName |  D1  | D3
---------------------------
 1 |   Sp1    |  100 | 120
表2数据如下:

 ID | Desc   | Table2ColName | Active
-------------------------------------
 1  | 1 Day  |      D1       |  Yes
 2  | 2 Days |      D2       |  No
 3  | 3 Days |      D3       |  Yes
 ID | ShopName |  D1  | D2  | D3
----------------------------------
 1  |   Sp1    |  100 | 80  | 120
ID | ShopName |  D1  | D3
---------------------------
 1 |   Sp1    |  100 | 120
然后我想加入2表,只显示活动数据,如何使用linq查询结果,如下所示:

 ID | Desc   | Table2ColName | Active
-------------------------------------
 1  | 1 Day  |      D1       |  Yes
 2  | 2 Days |      D2       |  No
 3  | 3 Days |      D3       |  Yes
 ID | ShopName |  D1  | D2  | D3
----------------------------------
 1  |   Sp1    |  100 | 80  | 120
ID | ShopName |  D1  | D3
---------------------------
 1 |   Sp1    |  100 | 120

我试了一整天,但什么也没得到,希望能有所帮助。谢谢

我想你已经得到了你需要的答案,但我想我还是会把它贴出来的。您的查询应该如下所示

var results = from a in data.table1
join b in data.table2
on a.ID equals b.ID
where a.Active =='Yes'
select new
{
a.ID,
b.ShopName,
b.D1,
b.D2
};