>데이터 베이스 >MySQL 튜토리얼 >LINQ to SQL에서 IN 하위 쿼리를 효율적으로 구현하는 방법은 무엇입니까?

LINQ to SQL에서 IN 하위 쿼리를 효율적으로 구현하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-27 12:50:21305검색

How to Efficiently Implement IN Subqueries in LINQ to SQL?

LINQ to SQL에서 IN 하위 쿼리 처리

LINQ to SQL에서 IN 하위 쿼리를 활용하면 데이터를 상호 연관시키는 효율적인 방법이 될 수 있습니다. 여러 테이블에서. 접근 방법은 다음과 같습니다.

일반 IN 쿼리 구현:

LINQ to SQL에서 IN 쿼리를 구현하려면 다음 구문을 따르세요.

var q = from t1 in table1
        let t2s = from t2 in table2
                  where <Conditions for table2>
                  select t2.KeyField
        where t2s.Contains(t1.KeyField)
        select t1;

구체적인 예:

자 예제 SQL 쿼리를 다시 살펴보세요.

SELECT f.* 
FROM Foo f
WHERE f.FooId IN (
    SELECT fb.FooId
    FROM FooBar fb
    WHERE fb.BarId = 1000
)

LINQ to SQL에서는 다음과 같이 변환됩니다.

var query = from f in db.Foo
            let fubars = from fb in db.FooBar
                          where fb.BarId == 1000
                          select fb.FooId
            where fubars.Contains(f.FooId)
            select f;

추가 고려 사항:

EXISTS 쿼리의 경우 Contains() 대신 Any() 메서드를 사용할 수 있습니다.

var q = from t1 in table1
        let t2s = from t2 in table2
                  where <Conditions for table2>
                  select t2.KeyField
        where t2s.Any(t1.KeyField)
        select t1;

위 내용은 LINQ to SQL에서 IN 하위 쿼리를 효율적으로 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.