【问题标题】:How to fetch data in a tree structure in MySQL? [duplicate]如何在 MySQL 中获取树结构中的数据? [复制]
【发布时间】:2018-11-23 20:02:45
【问题描述】:

我在 MySQL 中有一个表,表中的每个元组都是同一个表中元组的子级。为此,我将数据主 ID 插入为合作伙伴 ID。请参考以下示例。

这里的'A'父母有两个孩子'B'和'C',同样,'B'有'D'和'C'有'E'作为他们的孩子。下图显示了一个示例

现在,来到问题,我想获取给定父母的所有孩子。假设如果我通过 G 的 id 7,它应该获取 JKL 记录。如果我通过A 的 id 1 它应该获取所有记录。如何在 SQL 查询中实现这一点?我不知道如何构建这个 MySQL 查询。

【问题讨论】:

    标签: mysql


    【解决方案1】:

    这可以使用递归查询来完成,如下所示。

    SELECT  id,
            name,
            parent 
    FROM    (SELECT * FROM items
             ORDER BY parent, id) items_sorted,
            (SELECT @iv := '5') initialisation
    WHERE   find_in_set(parent, @iv)
    AND     length(@iv := concat(@iv, ',', id));
    

    查看this fiddle 以了解实际情况。另外,我提到的this is a very similar question 来创建这个答案。

    下次,请尝试提供Minimal, Complete and Verifiable Example(对于这种情况可能是SQL Fiddle),以便愿意回答的人方便。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-06-13
      • 2022-01-07
      • 2016-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-28
      相关资源
      最近更新 更多