2つのテーブルがあります。 items
およびitemItems
ルートノードの子アイテムであるすべてのアイテムを再帰的に取得するSQLiteクエリを書くことは可能ですか
itemItems
は、items
の多対多の関係を記述する。私。 items
のメンバーは、多くの子供を持つことができ、彼らは順番に多くの子供などを持っている可能性が多くの子供を持つことができます。..
項目:
itemID | more stuff ......
1 ...
2 ...
3 ...
4 ...
itemItems:
parentItemID | childItemID
1 2
1 3
2 4
私は再帰的に1つのルートノードの下にすべての子を取得するクエリを記述したい。
私は、これは参加再帰と呼ばれるもので可能であると考えているが、私は非常に混乱コンセプト....見つける(this質問に類似するが、多くの多くはないものとSQLiteのSQLサーバーではなく、多くの付き)
私は、これは再帰的になど、すべての子供たちの子供たちを取得するために拡張することができる方法私は...次
SELECT *
FROM items
INNER JOIN itemItems
ON items.itemID = itemItems.childItemID
WHERE itemItems.parentItemID = 1
を実行して、最初のレベル(1つの項目の下、すなわち、すべての子供を)得ることができますか?
この領域の周りのテキストhttps://sqlite.org/lang_with.html#rcex1は、特に「階層的なクエリの例」セクションの作業に役立ちました。また、一般的な概念についてはhttp://www.sitepoint.com/hierarchical-data-databaseを参照してください。 –
@ AndrewEidsness 3.7.2で動作させるには? – kiran