0

次のようにSELECTクエリを実行する必要があります。LINQSQL

ParentId   Country   State         ChildId
 1         India     kerala           2
 1         India     TamilNamdu       3
 5         Pakistan  Kasagithan1      6
 5         Pakistan  Kasg2            7

そして私Tableは:

Id  ParentId Country        State
1   0        India          NULL
2   1        NULL           Kerala
3   1        NULL           TamilNamdu
4   1        NULL           Karnadaka
5   0        Pakisthan      NULL
6   5        NULL           Kasagithan
7   5        NULL           Kasg2
8   5        NULL           Afganistha
9   0        China          NULL
10  9        NULL           Hwuesang1
11  9        NULL           sate1
12  9        NULL           sate2
4

3 に答える 3

1

列を使用してテーブルを自己結合できます。次のコードは、このアプローチの実装です。IdParentIdLINQ

using (YourEntity yourEntity = new YourEntity())
{
    var result =
    (
        from state in yourEntity.YourTableName
        from country in yourEntity.YourTableName
        where state.ParentId != 0 && state.ParentId == country.Id
        select new { ParentId = state.ParentId, Country = country.Country, State = state.State, ChildId = state.Id }
    ).ToList();
}

:を使用して結果をテストできますConsole(または、Debug.WriteLine()コンソールを使用できない場合は、出力ウィンドウに結果を表示するように変更します)

foreach (var item in result)
{
    Console.WriteLine("{0} {1} {2} {3}", item.ParentId, item.Country, item.State, item.ChildId);
}

クエリの場合は、SQL次を使用できます。

SELECT state.ParentId, country.Country, state.State, state.Id As 'ChildId'
FROM YourTableName As state INNER JOIN YourTableName AS country
    ON state.ParentId <> 0 AND state.ParentId = country.Id
于 2014-02-07T12:11:45.447 に答える
1

このSQLクエリを試してください:

select parentid, country, state, childID 
from tablename 
where parentid IN (1,5)
于 2014-02-07T11:46:14.763 に答える