在mysql的查询中将父菜单与子菜单相结合

时间:2018-06-02 16:26:35

标签: php mysql json join inner-join

我有像下面这样的mysql表,我试图创建一个查询来将父菜单与子菜单结合起来,但我很困惑将两者结合起来。我还是mysql的初学者,最终结果是json数据,如何解决呢?

menuId     | menuName  | menuType  | menuParentId  | menuOrder
1          | Settings  | parent    | NULL          | 2
2          | Set1      | child     | 1             | 1
3          | Set2      | child     | 1             | 2
4          | Category  | parent    | NULL          | 3
5          | Cat1      | child     | 4             | 1
6          | Cat2      | child     | 4             | 2
7          | Dashboard | parent    | NULL          | 1

我的预期结果是JSON格式,如下所示:

[
    {   menuId      : 7,
        menuName    : "Dashboard",
        menuType    : "parent",
        menuParent  : NULL,
        menuOrder   : 1
        menuChild   : []
    },
    {   menuId      : 1,
        menuName    : "Settings",
        menuType    : "parent",
        menuParent  : NULL,
        menuOrder   : 2
        menuChild   : [
                        {   menuId      : 2,
                            menuName    : "Set1",
                            menuType    : "child",
                            menuParent  : 1,
                            menuOrder   : 1
                        },
                        {   menuId      : 3,
                            menuName    : "Set2",
                            menuType    : "child",
                            menuParent  : 1,
                            menuOrder   : 2
                        }
                      ] 
    },
    {   menuId      : 4,
        menuName    : "Settings",
        menuType    : "parent",
        menuParent  : NULL,
        menuOrder   : 3
        menuChild   : [
                        {   menuId      : 5,
                            menuName    : "Cat1",
                            menuType    : "child",
                            menuParent  : 4,
                            menuOrder   : 1
                        },
                        {   menuId      : 6,
                            menuName    : "Cat2",
                            menuType    : "child",
                            menuParent  : 4,
                            menuOrder   : 2
                        }
                      ] 
    }
]
请帮助我:)

谢谢

0 个答案:

没有答案