使用场景:
当我们有 A,B 两张表并且是 1:n 的关系,其中 A 为主表的时候,使用联表查询的时候,必然会出现 n 条记录的数据
换做实际场景,我们的商品a,有多种规格b1,b2,b3,不同规格对应不同的价格,但是我们这个时候需要获得该商品中规格最低价的一条数据
实现:
假设我们已经获取到了结果集,转换为表格如下
商品id 名称 规格 价格
1 A1 B1 1
1 A1 B2 2
2 A2 B3 1
var data = (from t in table.OrderBy(p=>p.money) group t by t.id into newt select new Test { id = newt.Key, name = newt.FirstOrDefault().name money = newt.FirstOrDefault().money });
最后得出的结果就是
商品id 名称 规格 价格
1 A1 B1 1
2 A2 B3 1
当然还可以通过 Average(),Min(),Max(),Sum() 等聚合函数来获得自己想要的其他数据