【发布时间】:2018-01-04 12:04:34
【问题描述】:
例如,我在连接两个数据表时遇到问题:
table1 table2
ID, name ID, stock
1, item1 1, blabla
1, item2 3, bla2
3, item3
左加入后应该是这样的:
table3
ID, name, stock
1, item1, blabla
1, item2, blabla
3, item3, bla2
但它看起来像这样:
table3
ID, name, stock
1, item1,
1, item2,
3, item3,
这是我的代码:
var rowDataLeftOuter = from rowLeft in dtblLeft.AsEnumerable()
join rowRight in dtblRight.AsEnumerable() on rowLeft[colToJoinOn] equals rowRight[strTempColName] into gj
from subRight in gj.DefaultIfEmpty()
select rowLeft.ItemArray.Concat((subRight == null) ? (dtblRight.NewRow().ItemArray) : subRight.ItemArray).ToArray();
foreach (object[] values in rowDataLeftOuter)
dtblResult.Rows.Add(values);
【问题讨论】:
-
“colToJoinOn”和“strTempColName”的值是多少?
-
colToJoinOn = id and strTempColName = id_2 => 表示它来自table2的ID
-
如果您在两个表之间进行左连接并且只有左部分有值,可能是因为您的连接条件错误。
-
不,这很好,因为它已经过检查。两个表具有相同的列名。