ノードの直接の子が誰であるかだけを知りながら、ノードのすべてのリーフ ノード (子、孫など) を選択する MySQL クエリを作成するための非再帰的なソリューションを探しています。
現在、次のテーブルがあります。
ノード:
- ID (INT)
- データ (VARCHAR)
関係:
- 親 ID (INT)
- 子ID (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;
このデータベースを簡単に変更して、(サーバー側のコードで) 再帰呼び出しを使用せず、親のすべての子孫の葉を取得できるようにする方法はありますか?
これまでのところ、根本的な変更のように思われるこのような質問を見てきましたが、切り替えるのは非常に簡単ではありません...