Linq에서 SELECT FROM myTable WHERE id IN(SELECT…)을 어떻게 작성합니까?

StackOverflow https://stackoverflow.com/questions/45634

  •  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개의 쿼리를 결합해야 합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top