如何將此sql查詢轉換爲Linq查詢?Linq左外連接查詢
select *
from setupUOMs as su
LEFT OUTER JOIN scmSKUUoMs as ssu
on su.UoMID != ssu.UoMID
where ssu.SKUID = 446 and su.UMTypeID = 5
以下是linq查詢。
from c in setupUOMs
join o in scmSKUUoMs
on c.UOMID equals o.UoMID into sr
from x in sr.DefaultIfEmpty()
where x.SKUID == 446
select x
在上面的查詢,我至今只完成提取加入號碼,但我要的是選擇左表的不相等的記錄,但我能顯示加入記錄。它只返回左表的記錄,而我的結果是基於兩列的。在where子句中,我可以訪問來自左表的x.SKUID,但無法訪問右表中的x.UMTypesID(意味着沒有來自右表的列可以返回我可以創建的條件)。
那你試試? –
由於您正在'where'中檢查'ssu.SKUID = 446',所以您可以使用內部連接。 – Magnus
我已有了左外上scmSKUUoMs表setupUOMs的加入並返回非setupUoMs的匹配記錄.. 希望你能理解阿諾德.. –