我有两张桌子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
我希望有一个表C,它将包含B的所有条目,但如果在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
我知道有人可以通过加入和linq做到这一点,你有什么想法吗?
由于
答案 0 :(得分: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
}