2017-08-30 52 views
1

我有一个具有父子关系的循环引用的表。它看起来就像这个小提琴中给出的那个。从MySQL中的循环引用表中获取所有父母

http://sqlfiddle.com/#!9/2d852c/1/0

我需要找出所有给定的ID父名。我可以在这里使用哪个查询。我已经尝试将表加入自己,但它只会在树中获取一个级别。那就是它只会取得直接父母。我需要得到所有的父母。如果我搜索'第三',我需要'第二'和'第一'

+0

我不确定有一种很好的方法可以使用纯粹的SQL来完成此操作。也许使用像networkx这样的东西来寻找周期? – barrycarter

回答

1

试试这个查询。虽然,不确定它是否适用于所有可能的测试用例。

SELECT * 
FROM table1 
WHERE parent > 0 AND parent <= (SELECT parent FROM table1 WHERE name LIKE fifth') 
ORDER BY id DESC 
相关问题