1

ストアドプロシージャを実行して、3〜4個のテーブルをフェッチしました。現在、それらは私のデータセットに存在します。

このデータセットを複数のフォームで維持する必要があり、このデータセットに対してDML操作を実行していません。

現在、このデータセットには4つのテーブルが含まれており、そのうちのいくつかのレコードをフェッチしてデータを表示する必要があります。テーブルに格納されるデータは、1対多の関係の形式です。

すなわち、トランザクションの場合。レコードあたりNレコード。次に、これらのN個のレコードがさらに3番目のテーブルのM個のレコードにマップされます。

表1

MAP_ID               GUEST_ID             DEPARTMENT_ID        PARENT_ID            PREFERENCE_ID
-------------------- -------------------- -------------------- -------------------- --------------------
19                   61                   1                    1                    5
14                   61                   1                    5                    15
15                   61                   2                    4                    10
18                   61                   2                    13                   23
17                   61                   2                    20                   26
16                   61                   40                   40                   41
20                   62                   1                    5                    14
21                   62                   1                    5                    15
22                   62                   1                    6                    16
24                   62                   2                    3                    4
23                   62                   2                    4                    9
27                   62                   2                    13                   23
25                   62                   2                    20                   24
26                   62                   2                    20                   25
28                   63                   1                    1                    5
29                   63                   1                    1                    8
34                   63                   1                    5                    15
30                   63                   2                    4                    10
33                   63                   2                    4                    11
31                   63                   2                    13                   23
32                   63                   40                   40                   41
35                   65                   1                    NULL                 1
36                   65                   1                    NULL                 1
38                   68                   2                    13                   22
37                   68                   2                    20                   25
39                   68                   2                    23                   27
40                   92                   1                    NULL                 1

表2

Department_ID        Department_Name         Parent_Id             Parent_Name                                                                                                                                                                                                                                              
-------------------- ----------------------- ---------------   ----------------------------------------------------------------------------------
1                    Food                    1, 5, 6               Food, North Indian, South Indian                                                                                                                                                                                                                                           
2                    Lodging                 3, 4, 13, 20, 23      Room, Floor, Non Air Conditioned, With Balcony, Without Balcony                                                                                                                                                                                                                                               
40                   New                     40                    SubNew

表3

Parent_Id            Parent_Name                                        Preference_ID             Preference_Name
-------------------- -----------------------------------------------  -----------------------  -------------------
NULL                 NULL                                               NULL                     NULL
1                    Food                                               5, 8                     North Indian, Italian
3                    Room                                               4                        Floor
4                    Floor                                              9, 10, 11                First, Second, Third
5                    North Indian                                       14, 15                   X, Y
6                    South Indian                                       16                       Dosa
13                   Non Air Conditioned                                22, 23                   With Balcony, Without Balcony
20                   With Balcony                                       24, 25, 26               Mountain View, Ocean View, Garden View
23                   Without Balcony                                    27                       Mountain View
40                   New                                                41           SubNew 

私はこのような何らかの形で関連しているこれらの3つのテーブルを持っています。

表1は、これら2つの表、つまり表2と表3のマスターになります。

私はそれらについて質問する必要があります

        SELECT Department_Id, Department_Name, Parent_Name FROM Table2 WHERE Department_Id in 
            (
                SELECT Department_Id FROM Table1 WHERE guest_id=65
            )


        SELECT Parent_Id, Parent_Name, Preference_Name FROM Table3 WHERE PARENT_ID in 
            (
                SELECT parent_id FROM Table1 WHERE guest_id=65 
            )

次に、DataTablesでこれらのクエリを使用する必要があります。

だから私はこれにクエリ構文を使用していて、この時点に到達しました。

        var dept_list=  from dept in DtMapGuestDepartment.AsEnumerable()
                        where dept.Field<long>("PK_GUEST_ID")==long.Parse(63)
                        select dept;

これにより、ゲストID=63のすべての部門のリストが表示されます。

ここで、表2からすべてのdepartments_nameとparent_nameを選択します。ここで、guest_id = 63、つまり上記で取得した部門です。

表3についても、これと同じケースが続きます。

これを行う方法を提案してください。

私の質問を読んでくれて忍耐を続けてくれてありがとう。

4

1 に答える 1

1

テーブルごとに1つずつ、3つのIEnumerable変数があるとします。最初のクエリは次のようになります。

var records = from r1 in table1 where r1.GuestId == 63
              join r2 in table2 on r1.DepartmentId equals r2.DepartmentId
              select r2;

2番目のクエリは最初のクエリとほぼ同じで、2ではなくテーブル3で結合します。

var records = from r1 in table1 where r1.GuestId == 63
              join r3 in table3 on r1.ParentId equals r2.ParentId
              select r3;
于 2010-05-25T04:08:01.760 に答える