【发布时间】:2012-05-25 16:27:36
【问题描述】:
我有一个这样设置的物料清单表:
项目 - 父项
我显示物料清单的最终结果是这样显示的:
item 1 - parent 0
item 2 - parent 1
item 3 - parent 1
最终的结果也可以是多层次的,像这样:
item 3 - parent 0
item 4 - parent 3
item 76 - parent 3
它可以无限循环:
item 76 - parent 0
item 46 - parent 76
item 46 - parent 0
item 25 - parent 46
现在,我要么只从数据库中获取 1 个级别:
SELECT * FROM bom WHERE parentId = $itemId (shorthand)
或者从表中提取每一行并使用我的递归函数来整理出我需要的那些,但这显然是低效的,因为我可能只需要 10 行,但我提取了 10,000 条记录。递归函数的输出只会创建一个像这样的树:
item 1
item 2
item 3
item 4
item 76
item 46
item 25
我只知道我从第 1 项开始。第 5 项可能有 11 个父项;他们不必按顺序进行。我想得到树中的所有子分支。我怎么能在mysql中做这个查询?
【问题讨论】: