0
SELECT node .  * , node.page_id, (COUNT( parent.page_id ) - ( sub_tree.depth +1 )) AS depth
FROM pages AS node, pages AS parent, pages AS sub_parent, (
    SELECT node.page_id, (
    COUNT( parent.page_id ) -1
    ) AS depth
    FROM pages AS node, pages AS parent
    WHERE node.lft
    BETWEEN parent.lft
    AND parent.rgt
    AND node.page_id = '42'
    AND node.page_status =1
    GROUP BY node.page_id
    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.page_id = sub_tree.page_id
AND node.page_status =1
GROUP BY node.page_id
ORDER BY node.lft

我想在“page_menu_order”行上对结果进行排序,但在同一深度内。

所以孩子们保持层次结构,但在他们的深度内,他们按成本/价格/或page_menu_order排序。

4

1 回答 1

0

我已经使用分层数据结构,并且我使用此查询来获取相同的楼层类别

SELECT node.* ,count( parent.id ) -1 AS depth FROM pages node 
JOIN pages parent ON node.lft BETWEEN parent.lft AND parent.rgt 
WHERE ...[ Your clause Statment ]... GROUP BY node.id HAVING depth = 0
于 2011-06-27T16:31:22.607 回答