【问题标题】:How to create a mysql join query with hierarchical data如何使用分层数据创建 mysql 连接查询
【发布时间】:2024-05-17 01:05:02
【问题描述】:

我需要为跨 2 个表的分层数据创建连接查询。这些表可以有无限量的数据,它们的结构如下:

group_id      group_name       group_order
   1            group 1            2
   2            group 2            1


field_id    field_name    parent_group    field_order
   1         field 1           1               1
   2         field 2           2               2
   3         field 3           2               1

我目前能够使用 2 个选择查询获得正确格式的数据,其中第二个查询位于根据组表上第一个查询的结果创建的循环内。

我从结果中需要的数据结构如下:

-group 2
      - field 3
      - field 2

- group 1
      - field 1

是否可以从一个 mysql 查询中获得这些结果?我已经阅读了关于分层数据的 mysql 文档,但我对如何合并连接感到困惑。

感谢观看

【问题讨论】:

    标签: mysql hierarchy hierarchical-data


    【解决方案1】:

    您不需要考虑分层数据,您应该能够选择您的字段并加入您的组信息。尝试类似:

    SELECT * 
    FROM Fields AS F
    INNER JOIN Groups AS G 
    ON G.group_id = F.parent_group 
    ORDER BY group_order, field_order
    

    然后,您将获得每个字段作为适用组的一行,也以正确的组顺序排列。您的循环应该能够处理您需要的显示。

    【讨论】:

    • 谢谢。是的,你是对的,我使用错误的逻辑来尝试创建语句
    【解决方案2】: