Linq에서 SELECT FROM myTable WHERE id IN(SELECT…)을 어떻게 작성합니까?
-
09-06-2019 - |
문제
Linq에서 이것을 어떻게 다시 작성합니까?
SELECT Id, Name FROM TableA WHERE TableA.Id IN (SELECT xx from TableB INNER JOIN Table C....)
따라서 일반 영어로 TableA의 Id가 두 번째 쿼리의 결과 집합에 있는 TableA에서 Id와 Name을 선택하고 싶습니다.
해결책
from a in TableA
where (from b in TableB
join c in TableC on b.id equals c.id
where .. select b.id)
.Contains(a.Id)
select new { a.Id, a.Name }
다른 팁
LINQ는 포함 형식의 IN을 지원합니다."id IN(컬렉션)" 대신 "collection.Contains(id)"를 생각하세요.
from a in TableA
where (
from b in TableB
join c in TableC
on b.id equals c.id
select b.id
).Contains(TableA.Id)
select new { a.Id, a.Name }
이 블로그도 참조하세요 우편.
LINQ에는 IN에 대한 기본 지원이 없습니다.2개의 쿼리를 결합해야 합니다.
제휴하지 않습니다 StackOverflow