2

私のテーブル構造は次のようになります:

Id  Name    Parent
1   A-1 0
2   B-1 0
3   A-11    1
4   A-12    1
5   A-13    1
6   A-14    1
7   A-111   3
8   A-112   3
9   A-113   3
10  A-114   3
11  B-11    2
12  B-12    2
13  B-13    2
14  B-14    2
15  B-111   11
16  B-112   11
17  B-113   11
18  B-114   11

いいねを表示したい

Id  Name    Parent  GrandParentName
1   A-1     0   
2   B-1     0   
3   A-11    1   
4   A-12    1   
5   A-13    1   
6   A-14    1   
7   A-111   3   A-1
8   A-112   3   A-1
9   A-113   3   A-1
10  A-114   3   A-1
11  B-11    2   
12  B-12    2   
13  B-13    2   
14  B-14    2   
15  B-111   11  B-1
16  B-112   11  B-1
17  B-113   11  B-1
18  B-114   11  B-1

With 句と Inner Query を使用せずに?

4

1 に答える 1

3

私はそれが好きだとは言えませんが(固定結合を使用して一般化することはできません)、祖父母の名前だけが必要な場合は、2つの結合でそれを行うことができます:

select T.Id, T.Name, T.Parent, G.Name as GrandParentName
from Table1 as T
    left outer join Table1 as P on P.Id = T.Parent
    left outer join Table1 as G on G.Id = P.Parent
order by T.Id asc

sql fiddle demo

于 2013-10-23T12:00:41.023 に答える