【发布时间】:2014-08-06 10:40:09
【问题描述】:
我有一张代表家谱的表格。它有字段ID、NAME、LEVEL、PARENT_ID。
而PARENT_ID 列是外键,引用此表的ID 列。我怎样才能得到一个all(层次结构底部的任何级别)children的列表,只知道特定人行的ID?
我需要在不使用存储过程调用的情况下在单个查询中获取它。请帮助把它做得最好。
例如,如果ID 是 7,那么结果应该是:
我使用 MySQL-5.1。
编辑:如果原来的问题没有解决,也许当最高等级等于5时有解决方案?
【问题讨论】:
-
我不认为你可以。由于到底部的层数不定,所以没有一条 SQL 语句可以一直走到底部。
-
我不需要使用PHP,我需要SQL
-
mysql 不支持递归查询。您可以进行 n 路自我连接以恢复“升级”n 个级别,但这不是通用解决方案。通常的解决方法是在循环中执行查询并按照自己的方式进行备份。
-
如果原来的问题没有解决,也许最高等级等于5时有解决方案?
标签: mysql sql join mysql5 mysql-5.1