0

質問は少し奇妙に聞こえるかもしれません。私は次のようなPagesテーブルを持っています:

Id    PageName    Parent    Predecessor  
1     Home        null      null  
2     About       null      1  
3     Contact me  2         null  
4     My Resume   2         3

つまり、基本的には次のようになります。

Home  
About  
|--Contact me  
|--My resume  

最初にページに基づいてページを「グループ化」し、Parent次にそれらの値に基づいてそれらのグループにソートするselectクエリを作成したいと思いますPredecessor。これは、それらのページのツリー構造を保持することです。言うまでもなくParent、は同じテーブルPredecessorを指す外部キーです。 どんな助けでも大歓迎です:-)事前に感謝します編集1:私はSQL Serverを使用しています編集2:これが実際の写真です: IdPages


ここに画像の説明を入力してください

[About]の下に[ContactMe]と表示されているはずです(Parentフィールドが示すように)
注:このサンプルでOrderは、​​外部キーではありません。int並べ替えに使用されるだけです。

4

2 に答える 2

1

以下のようなものですか?

SELECT t1.*,t2.* FROM test t1 LEFT JOIN test t2 
ON t1.id=t2.parent
WHERE t1.parent IS NULL
ORDER BY t1.id,t2.id 
于 2012-07-17T11:56:23.477 に答える
1

これを試して

select PageName from Pages 
order by isnull(Parent,0),ISNULL(Predecessor,0)
于 2012-07-17T09:39:00.167 に答える