我有一个表Products(id,product_id,(name)...)
每个产品都归其他产品所有(此链可以有多个链接)
'name'属性仅在产品链的最后一个祖先上定义,因此如果我想显示产品列表,我将不得不以递归方式查询每条记录的名称。
因此,在给定产品ID列表的情况下,我想为每个产品ID返回最早的祖先,以便我可能会急切地加载它们。
我已尝试在postgres中使用递归自联接树,但未能提出任何可行的方法
我的尝试:
self.where('products.id IN
(WITH RECURSIVE tree(id) AS (
SELECT product.id
WHERE product.id IN (?)
UNION ALL
SELECT product.id
JOIN tree ON product.id = tree.id)
SELECT id FROM tree)', product_ids)
非常感谢任何帮助
由于