ホームページ >データベース >mysql チュートリアル >LINQ to SQL で IN サブクエリを効率的に実装するにはどうすればよいですか?

LINQ to SQL で IN サブクエリを効率的に実装するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-27 12:50:21267ブラウズ

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():

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;
の代わりに Any() メソッドを使用します。

以上がLINQ to SQL で IN サブクエリを効率的に実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。