私は、mySQL テーブルに格納されたカテゴリのツリー構造category_id
とparent_id
関係を持っています。Parent_id = Null
ルートノードに相当します。
Category (category_id, category_name, parent_id)
私がやろうとしているのは、すべてのリーフ ノードをフェッチして、ノードの category_id を指定することです。この記事をフォローしました。以下のクエリを使用してすべてのリーフ ノードを取得する方法について説明します。
SELECT t1.category_name FROM
category AS t1 LEFT JOIN category as t2
ON t1.category_id = t2.parent_id
WHERE t2.category_id IS NULL;
しかし、サブツリーのリーフ ノードを取得しようとしています。例えば:
上記の構造でノード 3 を指定すると、結果は 9、10、7、11、12、13 になります。
私はまた、ここで与えられた解決策を試しました: adjacency model 、与えられた id return the leaf nodes。しかし、私は望ましい結果を得ることができません。
解決策を見つけるのを手伝ってもらえますか?