0
Здравствуйте, мне нужно объединить две таблицы (MainTransaction и Subtransaction), проблема здесь. Я также хочу получить всю запись Maintransaction, которая не находится в Subtransaction, я застрял в этой части, как можно Я этого добиваюсь?Linq синтаксис join и group
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 Соединение слева. Результат должен вернуть всю запись таблицы Maintransaction, даже если в таблице SubTransaction не добавлен файл maintransactionId, и этот столбец для таблицы подтрансформации будет заполнен как нулевой результат. SELECT * FROM maintransaction m LEFT JOIN subtransaction s ON m.MainTransactionId = s.MainTransactionId – William
@ user660810 - Да, это то, что делает мой запрос. «В sts' делает это. Если нет связанных подтранзакций, то 'sts' будет пустым списком, и вы по-прежнему будете иметь основную транзакцию, возвращаемую из запроса. – Enigmativity
У меня была аналогичная проблема, и 'in' может использоваться только с' group join'. Насколько я понимаю, «join» коррелирует с внутренним соединением sql и 'group join' коррелирует с sql left join, грубо говоря. – pseudocoder