首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >站点层次结构的邻接列表模型,如何按特定顺序检索所有页面?

站点层次结构的邻接列表模型,如何按特定顺序检索所有页面?
EN

Stack Overflow用户
提问于 2013-11-09 20:57:27
回答 1查看 491关注 0票数 1

我必须管理我不是一个SQL专家,也许这个查询非常简单,但我无法编写它。基本上,所有页面都使用邻接列表模型(我也在跟踪深度):

代码语言:javascript
复制
+----+---------------+-------------------+-----------+
| id | title         | level | position  | parent_id |
+----+---------------+-------+-----------+-----------+
|  1 | Home          | 0     | 0         | null      |
+----+---------------+-------+-----------+-----------+
|  2 | Resources     | 0     | 1         | null      |
+----+---------------+-------+-----------+-----------+
|  3 | About         | 0     | 2         | null      |
+----+---------------+-------+-----------+-----------+
|  4 | Documents     | 1     | 0         | 2         |
+----+---------------+-------+-----------+-----------+
|  5 | Tutorials     | 1     | 1         | 2         |
+----+---------------+-------+-----------+-----------+

请注意,位置在同一父级中是唯一的。

我想要实现的是按父类排序并定位,但是父类别应该在其子级之前列出。这是显而易见的,而且不起作用:

代码语言:javascript
复制
SELECT * FROM PAGE p
ORDER BY parent_id, position

结果是第一张表。我需要的是:

代码语言:javascript
复制
+----+---------------+-------------------+-----------+
| id | title         | level | position  | parent_id |
+----+---------------+-------+-----------+-----------+
|  1 | Home          | 0     | 0         | null      |
+----+---------------+-------+-----------+-----------+
|  2 | Resources     | 0     | 1         | null      | // Parent of 4, 5
+----+---------------+-------+-----------+-----------+
|  4 | Documents     | 1     | 0         | 2         | // Child of Resource
+----+---------------+-------+-----------+-----------+
|  5 | Tutorials     | 1     | 1         | 2         | // Child of Resource
+----+---------------+-------+-----------+-----------+
|  3 | About         | 0     | 2         | null      |
+----+---------------+-------+-----------+-----------+

这在MySQL中是可能的,不支持递归吗?

EN

回答 1

Stack Overflow用户

发布于 2013-11-09 22:05:35

当可以限制查询时,可以使用自联接。或者尝试一个嵌套的集合或者赛尔科树。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19883013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档