我使用嵌套集模型与MySQL创建分层树模型。嵌套组型号:查询节点孩子的只有1级以下和所有的父母上述
我成功设法节点及以下所有的童车1级(我需要只有1分级别)
不过,我想不仅所有童车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
但我需要得到像THI S:
Electronics
--Portable Electronics
----MP3 Players
我将在以后使用此查询在PHP中,这样我就可以使用基于PHP的解决方案(或部分)了。
谢谢
但我怎么加入他们的行列呢? SQL UNION?试过,但没有成功..可能有人有一些例子。谢谢。 – Andrew