读书人

linq 三表联合查询高人指点。

发布时间: 2012-03-15 11:50:39 作者: rapoo

linq 三表联合查询,在线等高人指点。。
现在有三张表
表A 、B、C
a b c
aid bid cid
bid aid enid
enid work work

要实现的效果 b.work c.work
其中c.work 只有一条数据
b.work有三条数据

怎么样实现查询出来b有三个值,c只有一个值

求高人帮忙!!!

[解决办法]
其实是要Left Join一下,我那个写错了

C# code
var works =            from a in A join b in B on a.aid equals b.aid into AB select new{a.enid, b.work}           from ab in AB.DefaultIfEmpty() join c in C on c.enid equals ab.enid           select new{workB = b.work,                       workC = c.work //?? 默认值            };
[解决办法]
C# code
var query= from p in A           join q in B           on p.aid equals q.aid           into temp           from r in temp.DefaultIfEmpty()           join s in C           on q.enid equals s.enid           into temp1           from s in temp1.DefaultIfEmpty()           select new            {              q.work,              r.work           }; 

读书人网 >.NET

热点推荐