LINQへの相関サブクエリSQL

.net correlated-subquery linq sql subquery
LINQへの相関サブクエリSQL
select *
  from Table1
 where TC in (select TC
                from Table2
               where Application in ('AAA'))`

上記のクエリをLINQに変換するのに役立ちます。

  0  0


ベストアンサー

「where Application in( ‘AAA’)」部分がない場合、これは非常に単純に見えます。

from t1 in db.Table1s
where db.Table2s.Select(t2 => t2.TC).Contains(t1.TC)
from t1 in db.Table1s

更新(私はなんて間違っていた!)

List myCollection = new List { "AAA" };
from t1 in db.Table1s
where db.Table2s.Where(t2 => myCollection.Contains(t2.Application)).Select(t2 => t2.TC).Contains(t1.TC)
from t1 in db.Table1s

コード内コレクションで動作するはずです。

1


この方法で試してください

(今のところ)LINQには「In」サブクエリはありません。

「Any」演算子を使用して、同じことを達成します。

例えば:

従業員と同じ都市にいるすべての顧客

   from c in db.Customers
   where db.Employees.Any(e => e.City == c.City)
   select c;

or

Any()演算子の左側がサブクエリです。
query.Any(x => predicate)

SQLと同等です

EXISTS(
    SELECT *
    FROM query
    WHERE predicate
    )

詳細はこちら

0


タイトルとURLをコピーしました