我有这个内部联接,我正在使用LINQ来进行查询,如何使用LINQ编写此查询,我在网上寻找它但我找不到类似的内容。
INNER JOIN e210mvp mvp
ON mvp.codemp IN (1 , 2)
AND mvp.codlot = dls.codlot
AND mvp.datmov = (SELECT MIN(min.datmov)
FROM e210mvp min
WHERE min.codemp = 1
AND min.codlot = mvp.codlot)
谢谢!
答案 0 :(得分:1)
将等式测试保留在join
中,并将非等式测试移至where
。请注意,相等测试必须涉及左侧(或涉及它的表达式)等于右侧(或涉及它的表达式)。由于您在子选择测试的两侧都有mvp
,因此您无法将其保留在join
操作中。
join mvp in e210mvp on dls.codlot equals mvp.codlot
where new[] { 1, 2}.Contains(mvp.codemp) &&
mvp.datmov == e210mvp.Where(min => min.codemp == 1 && min.codlot == mvp.codlot).Min(min => min.datmov)