我有一个这样设置的物料清单表:
item - parent
我显示物料清单时的最终结果是显示如下:
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中做这个查询?