계층 적 트리 모델을 만들기 위해 MySQL과 함께 중첩 세트 모델을 사용하고 있습니다.중첩 세트 모델 : 쿼리 노드 하위 노드는 1 단계 아래에 있고 상위 노드는 모두
나는 성공적으로 (만 1 하위 수준 내가 얻을 필요)그러나, 나는 아래뿐만 아니라 모든 차일 1 레벨을하고 싶은 노드 아래의 모든 차일 1 수준을 얻기 위해 관리해야
있지만, 모든 그 노드 위의 부모들도.
내가 원하는 것을 얻기 위해 현재 쿼리를 수정할 수 있습니까?
이
내 코드입니다 (실제로이 아닌 작업, 사이트에서 가져온 것 : http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/하지만 내 정확히 동일) :Electronics
--Televisions
----LCD
--Portable Electronics
----MP3 Players
------Flash
----CD Players
:
이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;
트리 구조는 다음과 같습니다 위의 코드를 사용하면 다음과 같이 나타납니다.
--Portable Electronics
----MP3 Players
하지만 저는 S : 너무
Electronics
--Portable Electronics
----MP3 Players
내가 PHP 나중에이 쿼리를 사용하는 것, 그래서 PHP 기반 솔루션 (또는 그것의 일부)를 사용할 수 있습니다.
고맙습니다.
그런데 어떻게 가입합니까? SQL UNION? 그것을 시도했지만 성공하지 못했습니다. 누군가에게 몇 가지 예가 있을지도 모릅니다. 감사. – Andrew