我有 2 张桌子。 items
和itemItems
itemItems
描述了 之间的多对多关系items
。即一个成员items
可以有很多孩子,他们可以有很多孩子,而这些孩子又可以有很多孩子等等。
物品:
itemID | more stuff ......
1 ...
2 ...
3 ...
4 ...
项目项目:
parentItemID | childItemID
1 2
1 3
2 4
我想编写一个查询,该查询将递归地获取一个根节点下的所有子节点。
我相信这可以通过称为递归连接的方法实现,但我发现这个概念非常令人困惑......(类似于这个问题,但使用 sqlite 不是 sql server 并且多对多不是一对多)
我可以通过执行以下操作获得第一级(即一个项目下的所有孩子)
SELECT *
FROM items
INNER JOIN itemItems
ON items.itemID = itemItems.childItemID
WHERE itemItems.parentItemID = 1
我如何扩展它以递归地获取所有孩子的孩子等......?