1 - Root - 20
2 - child1 - 3
4 - child2 - 5
6 - child3 - 7
8 - child4 - 9
这是mysql的嵌套集合模型。
假设_lft
和_rgt
是指示左值和右值的字段
据我所知, child 越左,值越低?所以这里我们从左侧得到 2 个子级,从右侧得到 2 个子级,是否可以在不添加像 direction
这样的新字段的情况下完成,该字段可以在插入之前指示子级方向?
我只想使用 _lft
和 _rgt
来确定这一点,我无法弄清楚逻辑是什么,即使是文字,也不需要代码
如何只查询相对于父级属于左侧的子级?
请给点建议,谢谢。
最佳答案
我认为您确实需要努力理解嵌套集的工作原理。
我会阅读此模型的图表以及如何插入新节点(其余的也是很好的信息)。 http://falsinsoft.blogspot.com/2013/01/tree-in-sql-database-nested-set-model.html
请注意,所有叶子都是 _rgt = _lft + 1。最左边叶子的 _lft 是 min(select _lft .... 其中 _rgt = _lft + 1)。
将这些知识与同一页面上的节点查询路径相结合,我认为您将获得所需的内容。
另一个资源是维基百科页面:
关于php - 嵌套集合如何确定左右节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23722981/