当涉及两个以上的表时,如何将来自相似字段的单个表的两个左连接转换为 LINQ? [复制]

Posted

技术标签:

【中文标题】当涉及两个以上的表时,如何将来自相似字段的单个表的两个左连接转换为 LINQ? [复制]【英文标题】:How can two left joins from a single table on similar fields be translated into LINQ when more than two tables are involved? [duplicate] 【发布时间】:2021-10-22 17:11:45 【问题描述】:

这是查询:

SELECT colA, colB, colC
FROM TableA 
LEFT JOIN TableB 
ON TableA.colA = tablea.colA
LEFT JOIN TableC 
ON TableA.colA = TableC.colA

这是我的 LINQ 代码:

from a in TableA
join b in TableB on a.colA equals b.colA 
join c in TableC on a.colA equals c.colA 
select new  values here

但它似乎不起作用。

Here 是我们将使用的确切架构

【问题讨论】:

这能回答你的问题吗? LEFT OUTER JOIN in LINQ Don’t use Linq’s Join. Navigate! 【参考方案1】:

试试这个

data= (from a in TableA
join b in TableB on a.colA equals b.colA into bj
 from b in bj.DefaultIfEmpty()
join c in TableC on a.colA equals c.colA  into cj
 from c in cj.DefaultIfEmpty()
select new  a.Cola,b.Colb, c.Colc).ToList();

【讨论】:

以上是关于当涉及两个以上的表时,如何将来自相似字段的单个表的两个左连接转换为 LINQ? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

将 CSV 导入 BigQuery 中的表时无法添加字段

连接两个以上的表时,Oracle 连接消除无法按预期工作

如何在sql中连接来自不同表的两个字段

在引用其他表时在单个表上使用Delete查询

当 LEFT JOINing 两个不同的表时,GROUP_CONCAT 接触了太多的重复值

将包含超过255个字段的制表符分隔文本文件导入两个访问表的工作代码