我正在寻找一种非递归解决方案来进行 MySQL 查询以选择节点的所有叶节点(子节点、孙子节点等),同时只知道节点的直接子节点是谁。
目前我有以下表格:
节点:
- 身份证 (INT)
- 数据(VARCHAR)
关系:
- 父 ID (INT)
- childId (INT)
- childNodeOrder (INT)
我目前的方式只能选择父节点的直接子节点(对于这个例子,让父 Id = 1):
SELECT * FROM Nodes n
JOIN Relationships r ON r.childId = n.id
WHERE r.parentId = 1
ORDER BY r.childNodeOrder;
有什么方法可以让我轻松地更改这个数据库而不使用递归调用(在我的服务器端代码上)并且能够获取父级的所有后代叶子?
到目前为止,我已经看过像这样的问题,这似乎是一个根本性的变化,而且不太容易切换......