I’m working with hierarchical data in my cms. My menu table is this:
id || name || lft || rgt

And my left and right columns are:

To retrieving a full tree and it’s depth, I’ve found this query:
SELECT node.id, node.name, (COUNT(parent.name) - 1) AS depth
FROM menu AS node,
menu AS parent
WHERE node.lft BETWEEN parent.lft AND parent.rgt
GROUP BY node.name
ORDER BY node.lft;
There is a join, table with itself. How dose it retrieve whole tree?
Thank you very much.
Advertisement
Answer
If you want to do hierarchical queries in a tree with SQL, you need a special data model.
Your example uses the Nested set model.