我想在一个mysql查询中获得第n级的类别和子类别的层次结构


i want to get Hierarchical structure of category and subcategory for nth level in one mysql query

我想在一个mysql查询中获得第n级的类别和子类别的层次结构,我尝试了一些解决方案,但它不能正常工作。我尝试下面的查询,但它只得到子类别,但是,我希望它从一个像一样的表中获得第n级

类别|子类别|子分类|。。。。。。

我的表是fd_category,它的字段是

id|name|parent_id FK -> fd_category.id  

 select c.id
      , c.name
      , group_concat(sc.name) as subcategory 
  from fd_category c 
  join fd_category sc 
   on c.id=sc.parent_id 
 where c.parent_id=null 
 group 
   by sc.parent_id;

public function get_menu() {
       $this->db->select('id,name,parent_id');
        $menu = $this->db->get('category')->result_array();
        $data=$this->menu_child($menu);
        //print_r($data);        
        return $data;
    } 
function menu_child($menu, $parent = NULL) {
       $main_menu = array_filter($menu, function($a)use($parent) {
                   return $a['parent_id'] == $parent;
               });
       if ($main_menu) {
           foreach ($main_menu as $key => $value) {
               $main_menu[$key]['sub_menu'] = $this->menu_child($menu, $value['id']);
           }
       }
       return $main_menu;
    }