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然后根据它们的值在这些组中排序Predecessor。那就是保留那些页面的树结构。不用说,ParentPredecessor都是指向IdPages一张表的外键。
非常感谢任何帮助 :-) 在此先感谢
编辑 1:我正在使用 SQL Server
编辑 2:这是一张实际图片:

在此处输入图像描述

它应该在 About 下方显示“Contact Me”(如Parent字段所示)
注意:在此示例中,Order它不是外键。它只是一个int用于排序的。

4

2 回答 2

1

试试这个

select PageName from Pages 
order by isnull(Parent,0),ISNULL(Predecessor,0)
于 2012-07-17T09:39:00.167 回答
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 回答