gpt4 book ai didi

php - 嵌套集模型 : Query node childs only 1 level below AND all parents above

转载 作者:搜寻专家 更新时间:2023-10-31 22:14:58 25 4
gpt4 key购买 nike

我正在使用带 MySQL 的嵌套集模型来创建分层树模型。

我已经成功地获得了 Node 及其所有子级低于 1 级(我只需要获得 1 个子级)

但是,我不仅希望拥有低于该节点的所有 Childs 1 级别,而且还希望拥有该节点之上的所有父级。

是否可以修改当前查询以获得我想要的内容?

这是我的代码(实际上它取自这个无法工作的站点:http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/ 但我的代码完全一样):

SELECT node.name, (COUNT(parent.name) - (sub_tree.depth + 1)) AS depth
FROM nested_category AS node,
nested_category AS parent,
nested_category AS sub_parent,
(
SELECT node.name, (COUNT(parent.name) - 1) AS depth
FROM nested_category AS node,
nested_category AS parent
WHERE node.lft BETWEEN parent.lft AND parent.rgt
AND node.name = 'PORTABLE ELECTRONICS'
GROUP BY node.name
ORDER BY node.lft
)AS sub_tree
WHERE node.lft BETWEEN parent.lft AND parent.rgt
AND node.lft BETWEEN sub_parent.lft AND sub_parent.rgt
AND sub_parent.name = sub_tree.name
GROUP BY node.name
HAVING depth <= 1
ORDER BY node.lft;

树状结构是这样的:

Electronics
--Televisions
----LCD
--Portable Electronics
----MP3 Players
------Flash
----CD Players

使用我上面的当前代码,我得到了这个:

--Portable Electronics
----MP3 Players

但我需要得到这样的东西:

Electronics
--Portable Electronics
----MP3 Players

稍后我将在 PHP 中使用此查询,因此我也可以使用基于 PHP 的解决方案(或其中的一部分)。

谢谢

最佳答案

我认为您想将其拆分为多个查询。首先是“可移植电子产品”及其所有子项,就像您现在正在做的那样。之后,获取父元素很容易,只需获取所有元素 WHERE left < [PE-left] AND right > [PE-right] .

关于php - 嵌套集模型 : Query node childs only 1 level below AND all parents above,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7582292/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com