0

我有两个表 A 和 B。表 A 是这样的:

Date           | Value
1/9/2013 13:30 |   1
1/9/2013 13:31 |   2
1/9/2013 13:32 |   2.1
1/9/2013 13:33 |   1.6
1/9/2013 13:34 |   1.7
1/9/2013 13:35 |   1.9
1/9/2013 13:36 |   5.6
1/9/2013 13:37 |   1.6
1/9/2013 13:38 |   1.64
1/9/2013 13:39 |   1.36

表 B 是这样的:

1/9/2013 13:33 |   1.7
1/9/2013 13:37 |   1.6
1/9/2013 13:38 |   1.8

我想要一个包含 B 的所有条目的表 C,但如果在 13:30 时没有条目,则值为 null。所以表 C 是这样的:

 Date           | Value
1/9/2013 13:30 |   null
1/9/2013 13:31 |   null
1/9/2013 13:32 |   null
1/9/2013 13:33 |   1.7
1/9/2013 13:34 |   null
1/9/2013 13:35 |   null
1/9/2013 13:36 |   null
1/9/2013 13:37 |   1.6
1/9/2013 13:38 |   1.8
1/9/2013 13:39 |   null

我知道可以通过 join 和 linq 做到这一点,你知道吗?

谢谢

4

1 回答 1

0

尝试以下LEFT JOIN查询:

from a in dtA.AsEnumerable()
join b in dtB.AsEnumerable() on a.Field<DateTime>("Date") equals b.Field<DateTime>("Date") into joinedB
from b in joinedB.DefaultIfEmpty()
select new
{
    Date = a.Field<DateTime>("Date"),
    Value = b != null ? b.Field<DateTime>("Value") : null
}
于 2013-04-09T11:00:48.227 回答