0

私は3つのテーブルを持っています。Linq ステートメントを使用してデータを取得する必要があります。私の 3 つのテーブル名は A、B、C です。次のような ID に基づいて、2 つのテーブル A と B を接続するために結合を接続しました。

select ol, fN, LN, ci, co
from member
join details
on member_id = details_id
where details_id in
(select contacts_id from contacts where
contacts_id1 = 1 and contacts_usr_id = 1)

条件までクエリを記述whereできますが、内部の while 条件のクエリをどのように記述できますか?

4

2 に答える 2

1

あなたはこれを試すことができます:

      var idlist = (from tbl in table3
                    where tbl.usr_id == 1 && tbl.contacts_id == 1
                    select tbl.contacts_id ).ToList();

     var x = from A in table1
              from B in table2 where A.user_id == B.user_id                
              && idlist.Contains(A.user_id)
              select new { a = A.a, b = A.b, c = A.c, d = B.d, e = B.e };

それが機能するかどうかを確認してお知らせください。

于 2012-06-14T12:59:35.493 に答える
0

クエリを上下逆にしてみてください。以下はどうでしょう。

var query = 
   from t3 in table3
   where t3.user_id = 1 && t3.contacts_id = 1
   join t2 in table2 on t3.contacts_id equals t2.usr_id
   join t1 in table1 on t2.usr_id equals t1.userid
   select new {t2.a, t2.b, t2.c, t1.d, t1.e};
于 2012-06-15T15:37:09.927 に答える