表结构复杂的SQL树行
id | message | reply_id
1 | help me! | 0
434 | love to | 1
852 | didn't work | 434
0110 | try this | 852
2200 | this wont | 0
5465 | done. :) | 0110
我有一个ID为“852”,这是树形菜单的中间,但我想以前所有的相关的和未来相关行,所以我希望得到以下结果是这样的:
帮帮我! >爱到>没有工作>尝试这个>完成。 :)(这个结果表明在php循环之后,但是从启动器id 1开始循环,并且回复id为0.
注意:2200 id没有显示在结果中,因为它不是组的一部分。
我喜欢你的混合解决方案。我实际上认为同样的解决方案来拉组ID(parent_id),但做一个API,并要求用户发回组ID与答复ID,我不认为这将是一个好主意,但我们可以做到这一点,而无需询问用户和拉ID而不问。不能我们拉参考行?对于mysql来说真的很难吗? 拉动当前行的下一行或前一行,id是wired(id:xcwevesd)..所以不能用整数。 – Basit 2009-08-11 01:29:52
我没有遵循这一切。但FWIW这不是MySQL问题,这是一个SQL语言问题。如果没有SQL2003中引入的CTE语法,当您使用“parent-id”(也称为邻接列表)设计时,没有简单的方法来执行递归查询来获取整个树。这就是为什么人们想出了另一种存储层次结构的方法。 – 2009-08-11 02:26:25
即时尝试做以下,我认为它是一个很好的解决方案http://www.nabble.com/tree-query-td6357375.html,但它给出以下错误http://stackoverflow.com/questions/1267172/mysql-分隔符错误 – Basit 2009-08-12 17:20:43