我有下面的表格。如何在没有递归的情况下选择父子'第'记录?
id | name | parent_id
----+--------------+-----------
1 | Cat |
2 | Fun | 1
3 | LOLCs | 2
4 | Anid | 2
5 | Cla | 1
6 | Rena | 5
.................................
Up to 'N' th Level
我想选择父子nth
记录,而不在SQL递归。
有人可以提供一些关于如何做到这一点的指导吗?
为什么不递归?那么你是否考虑使用'for循环'? –
如果你的数据库管理系统不支持递归查询或循环,并且级数很少,那么经典的解决方案就是在每个级别上增加另一个“leftlevel.id = prevlevel.parent_id”的左连接。 – dnoeth
如果可以像这种类型的方式................ SELECT L0。* FROM test L0 JOIN测试L1 ON L0.Parent_Id = L1.Id JOIN测试L2 ON L1 .ID = L2.Parent_Id WHERE L1.id = '1' UNION所有 SELECT L1 * FROM测试L0 JOIN测试L1 ON L0.Id = L1.Parent_Id JOIN测试L2 ON L1.MnuId = L2 .ParentId JOIN测试L3 ON L2.Parent_Id = L3.Id WHERE L1.Parent_Id = 1' – user6479492