这个问题可能听起来有点奇怪。我有一个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
的值对这些网页进行排序。这是保留那些页面的树结构。不用说,Parent
和Predecessor
是指向同一Id
表中Pages
的外键。
非常感谢任何帮助:-)提前谢谢你
编辑1 :我正在使用SQL Server
编辑2 :这是一张实际图片:
它应显示下面的“与我联系”关于(Parent
字段表示)
注意:在此示例中,Order
不是外键。它只是一个int
,用于排序。
答案 0 :(得分:1)
试试这个
select PageName from Pages
order by isnull(Parent,0),ISNULL(Predecessor,0)
答案 1 :(得分: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