我正在为此撞墙...我的SQL并不是最好的,所以我无法解决它,也找不到这个问题的答案...
问题是:如果中间表的键是互斥的,如何使用查询语法(LINQ)联接三个表?我的意思是...我有一个表A,它的外键指向B ... B有一个外键,指向A,另一个则指向C ...,而C指向B。在表B中,如果FK到A不为空,则FK到C为空(反之亦然),并且在这些关系之间有一个链接键。
就像A的键是输入,B的键正在退出,Linking Key是产品一样。他们不能在同一条直线上,但是两个不同的动作具有相同的乘积。目的是获取有关A + B + C的信息。
例如,使用这些表:
如果我想了解有关(表A)ID ='a'的信息,则查询应返回
或者提供类似的东西之后可以工作的东西...
我有:
vM_Report_Aux = (from ctbr in db.Rec_Cont_Mov
join rM in db.Rec_Mov on ctbr.Rec_ContabID equals rM.Rec_ContabID
join brm in db.Rec_B_Mov on rM.RecID equals bRM.RecID
select new
{
ID = ctbr.ID,
Val = rM.Val
}).OrderBy(q => q.ID).ToList();
此查询返回null ...如果我进行一个连接,它将给我一半的结果(例如,表A)...如果我进行另一个(并调整查询),则它返回另一半(表C)。两者都显示了表B ...
有什么办法可以达到预期效果吗?
谢谢