2017-08-30 81 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 
相關問題