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