0
你好,我需要连接两个表(MainTransaction和子事务),这里的问题是我还希望获得所有Maintransaction的,这不是在子事务的记录,我被困在这部分,如何能我做到了?Linq的语法加入和组
protected object SelectMainTbl()
{
var mainIdAndSum = from st in t.subtransaction
group st by st.MainTransactionId into g
select new
{
Sum = (from r in g
select r.Amount).Sum(),
MainId = g.Key
};
var mainTbl = from main in t.maintransaction
join sub in mainIdAndSum on main.MainTransactionId equals sub.MainId
where main.IsEnabled == true && (sub.Sum - main.Amount != 0)
select main;
return mainTbl;
}
嗨感谢您的回答, 不过,我想实现的是类似SQL左连接。即使SubTransaction表没有插入maintransactionId,结果也必须返回Maintransaction表的所有记录,并且子操作表的那些列将在结果中填充为null。 SELECT * FROM maintransaction m LEFT JOIN subsnsaction s ON m.MainTransactionId = s.MainTransactionId – William
@ user660810 - 是的,这就是我的查询所做的。 “进入sts”就是这样做的。如果没有关联的子事务,那么'sts'将是一个空列表,并且您仍然会从查询返回主事务。 – Enigmativity
我一直有类似的问题,并且'into'只能和'group join'一起使用。据我了解,“join”与sql内部连接相关,“group join”与sql左连接粗略相关。 – pseudocoder