首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

linq多表分组查询解决思路

2012-12-31 
linq多表分组查询a表有数据bid与b表id相关,要按照a的字段name分组,b的字段time排序,只查询b全部字段,要求

linq多表分组查询
a表有数据bid与b表id相关,要按照a的字段name分组,b的字段time排序,只查询b全部字段,要求只取每个组的time最大的数据
[解决办法]

var query= from x in db.a
           join y in db.b
           on x.bid equals b.id
           group x by x.name into g
           select g.OrderByDescending(z=z.time).First();

[解决办法]
引用:
引用:
a表有数据bid与b表id相关,要按照a的字段name分组,b的字段time排序,只查询b全部字段,要求只取每个组的time最大的数据

这个time字段是b表的,这是关键的所在。您看看怎么实现,这里我要返回的是a表。说白了就是按照a的time 排序但是要按照b的name来分组,而且只要最大值

var result = from u in db.TableB
                    orderby u.time descending
                    let n = db.TableA.Select(c => c.name)
                    group u by n into g
                    select g.FirstOrDefault();

热点排行