【问题标题】:Get all parents from a circular reference table in MySQL从 MySQL 中的循环引用表中获取所有父级
【发布时间】:2017-08-30 09:33:01
【问题描述】:

我有一个用于父子关系的循环引用表。它看起来像这个小提琴中给出的那个。

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

我需要找出给定 ID 的所有父级名称。我可以在这里使用哪个查询。我尝试将表连接到自身,但它只会获取树中的一个级别。也就是说,它只会获取直接父级。我需要得到所有的父母。比如如果我用“第三”搜索,我需要得到“第二”和“第一”

【问题讨论】:

  • 我不确定是否有使用纯 SQL 的好方法。也许使用 networkx 之类的东西来查找循环?

标签: mysql sql circular-reference


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-18
    • 1970-01-01
    • 1970-01-01
    • 2019-05-11
    • 1970-01-01
    • 2011-06-15
    • 2020-11-14
    相关资源
    最近更新 更多