【发布时间】:2016-09-12 06:51:17
【问题描述】:
我有一个名为task 的表,具有自我关系来完成父子关系。
这是表的结构:
task (id, name, parent_id)
任何任务都可以有n 孩子。
现在在我看来,我必须以目录格式显示任务,其中第 n 级嵌套如下:
1. Grandfather
1.1. Father
1.2 Mother
1.2.1 First Child
1.2.1 Second Child
2. Grandfather's brother
2.1 Grandfather's brothers son
3. Grandfather's brother's wife
为了清楚起见,我将这些任务命名为人际关系,只是为了显示嵌套的层次结构。
我所做的是从我的数据库中选择所有任务并像这样开始迭代它们:
foreach($tasks as $task)
{
//Get the hierarchy level here and print its index for example 1.1.2
}
我不知道如何按 1、2、3 级别对它们进行排序,因为索引 0 处的任何任务的实际位置都可能是 3.1.2。
这可以在代码级别完成吗? 或任何 SQL 建议?
谢谢
【问题讨论】:
-
MySQL 还是 Postgresql?不要标记未涉及的产品。
-
Postgresql...如果 MySQL 有问题,请删除它
-
什么版本的 postgres?
-
你必须使用 ctes。这是一个示例,只需将总和替换为您要获取的连接字符串:stackoverflow.com/questions/13191885/…
标签: php sql postgresql