簡體   English   中英

在LINQ中轉換子查詢

[英]Convert subquery in LINQ

我有這樣的SQL子查詢

SELECT A.DOCID 
FROM mstdocs a, mstdocstats b 
WHERE a.DOCID = b.DOCID 
AND b.VID = '1' 
AND A.DOCID NOT IN (SELECT a.docid 
                    FROM mstdocs a, mstdocstats b 
                    WHERE a.DOCID = b.DOCID 
                    AND b.VID = '1' 
                    AND a.VTAID = '2') 
GROUP BY A.DOCID

如何在LINQ中轉換該查詢。 謝謝你的回答

我認為您可以將這個問題分為兩個部分。 首先,您可以選擇不在列表中

var notInList = from a in db.mstdocs
                        join b in db.mstdocstats on a.DOCID equals b.DOCID
                        where a.VID == "1" && b.VTAID == "2"
                        select a.DOCID;

然后,您可以使用此列表獲取所需的內容:

var result = from a in db.mstdocs
                     join b in db.mstdocstats on a.DOCID equals b.DOCID
                     where !notInList.Contains(a.DOCID) && b.VID == "1"
                     group a by a.DOCID into g
                     select g.Key;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM