【发布时间】:2018-05-24 10:02:10
【问题描述】:
/*请参阅我的问题的最后 3 行,了解我的问题与建议的可能重复项有何不同。 */
我正在尝试使用 Linq 将 3 个数据表连接在一起。
假设 DataTable 名称是 table1、table2 和 table3 假设每个Datatable有6列,列名分别为col1、col2、col3、col4、col5、col6。
我想加入 col1、col2、col3 和 col4 匹配的这些表。
我想将表 2 和表 3 中的第 5 列和第 6 列附加到表 1,从而得到一个表 4,它有 10 列和所有记录,无论是否匹配(如果不匹配,则为空)。
我早上的大部分时间都在研究这个问题,但似乎无法理解它。我打算尝试下面的代码,但我认为它只会让人们感到困惑。预先感谢您的任何帮助。我希望我提供了足够的信息。
编辑:我将尝试下面的代码。我什至无法加入任何工作,更不用说所有表了:
var table4 = from one in Table1 join two in Table2 on one.col1 equals two.col1, one.col2 equals two.col2, one.col3 equals two.col3, one.col4 equals two.col4
select new { one.col1, two.col1, one.col2, two.col2, one.col3,two.col3,one.col4,two.col4};
由于以下原因,我的问题与建议的重复项不同: 1.该问题涉及加入列表而不是数据表 2.该问题解决了基于匹配一列而不是多列的加入
【问题讨论】:
-
@mjwills 不,那是我看的第一个,它正在加入列表,也只加入一列
-
为什么不用sql,哪个更简单?
-
标记为重复项中的第二个答案具有通用的完全外连接实现,它也是 MoreLINQ stackoverflow.com/a/13503860/1383168 的一部分,可以与 DataTables 和多个键一起使用