在LINQ中使用左外连接和内连接连接4个表

时间:2017-06-19 08:16:44

标签: c# .net linq linq-to-entities

enter image description here LINQPad屏幕截图,其中TAanlysis是T2表,我可以展开以查看详细信息。

我有四张桌子。其中三个需要与左边连接,而其中两个内部连接。

以下是我尝试在LINQ中重新编码的SQL代码:

select t1.*,t2.*,t3.*
from t1
left outer join t2 on t1.column1=t2.column1
left outer join t3 on t2.column1=t3.column1
INNER join t4 on t2.column1=t4.column1
where t3.column2=x**

任何人都可以帮助如何在LINQ中编写此类查询吗?

我尝试在.NET下面的LINQ查询,它在后端产生不同的SQL查询:

from prsn in db.T1
join co in db.T2 on prsn.Id equals co.Id into ps1
from y1 in ps1.DefaultIfEmpty()
join tproject in db.T3 on y1.Id equals prod.Id into ps2
from y2 in ps2.DefaultIfEmpty()
join res in db.T4 on y1.Id equals res.Id
where y2.ID == x 
select prsn;[![enter image description here][1]][1]

在后端形成的SQL查询:

select filter1.*
from (Select t1.* from t1 inner join t2 on t1.Id=t2.Id
      left outer join t3 on t2.Id = t3.Id)as filter1
inner join t4 on filter1.Id= t4.Id
where filter1.Id= x

我尝试在.NET上面的LINQ查询,它在后端产生不同的SQL查询。如果我遗失了什么,请告诉我?

注意:从3个表中选择所有列。

0 个答案:

没有答案