我有一个从数据库表中获取的数据数组,该数据库表使用邻接模型来构建主题的层次结构。每条记录包含以下字段:
数组来自未嵌套的数据库,并按照您的预期按ID排序。 'id'字段是随机的和abritary的,不能依赖于产生有用的顺序。我正在寻找一种方法来使用parent_id对数组进行排序,以便它处于正确的邻接顺序中,但最终结果没有嵌套到子数组中。列表如下所示:
非常感谢任何帮助或指向示例的指针(即使是在不同的语言中)。
答案 0 :(得分:0)
您可以添加一个字段,例如sort
,您可以在该字段中存储相同ID的顺序。
另一种解决方案是按ORDER BY parent_id, id
对它们进行排序(在SQL中),或者使用JOINs(未经测试)将两者ORDER BY sort
组合在一起:
SELECT object.id, object.sort, parent.id, parent.sort
FROM objects AS object
LEFT JOIN objects AS parent ON object.parent=parent.id
ORDER BY parent.sort, object.sort;
假设objects
是您的表名,同一个表是object
作为主对象,parent
作为其父对象(您需要它来获取{{1}父母)。