ホームページ >データベース >mysql チュートリアル >LINQ to SQL で IN サブクエリを効率的に実装するにはどうすればよいですか?
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 サイトの他の関連記事を参照してください。