У меня есть этот SQL код, который работает:
SELECT
FF.numero,
FF.cuo_pla,
FF.num_pla,
PN.Descripcion,
TN.Nombre
FROM encf EF
JOIN forf FF
ON EF.numero = FF.numero
AND EF.[manual] = FF.[manual]
AND EF.comproba = FF.comproba
AND EF.tipo_fac = FF.tipo_fac
AND EF.sucursal = FF.sucursal
LEFT JOIN Planes PN
ON FF.num_pla = PN.Numero
LEFT JOIN Tarjetas TN
ON PN.IdTarjeta = TN.ID
WHERE
EF.documento = 123456789
Есть два LEFT JOIN и одно INNER JOIN. Я знаю, как выполнить внутреннее соединение, но не знаю, как сделать эти два левых соединения, которым нужен идентификатор, полученный в первом внутреннем соединении. Я делаю что-то вроде этого:
var queryEncFor = from enc in db.encf
join forF in db.forf on
new
{
JoinProperty1 = enc.numero,
JoinProperty2 = enc.manual,
JoinProperty3 = enc.comproba,
JoinProperty4 = enc.tipo_fac,
JoinProperty5 = enc.sucursal
}
equals
new
{
JoinProperty1 = forFact.numero,
JoinProperty2 = forFact.manual,
JoinProperty3 = forFact.comproba,
JoinProperty4 = forFact.tipo_fac,
JoinProperty5 = forFact.sucursal
}
where enc.documento == doc
select new UnionEncForFact
{
numero = enc.numero,
cuo_pla = forF.cuo_pla == null ? 0 : forF.cuo_pla.Value,
num_pla = forF.num_pla
};
Внутреннее соединение работает, но я не знаю, как перевести два левых соединения, какие-либо предложения?