Php 嵌套集模型MySQL

Php 嵌套集模型MySQL,php,mysql,sql,Php,Mysql,Sql,我有两个表类别和类别描述。带柱 `category` ( `category_id`, `image` , `parent_id` , `sort_order`, `status` , `created`, `modified`, PRIMARY KEY (`category_id`) ) `category_description` ( `category_id`, `name` , `description`, `meta_descripti

我有两个表类别和类别描述。带柱

`category` (
  `category_id`,
  `image` ,
  `parent_id` ,
  `sort_order`,
  `status` ,
  `created`,
  `modified`,
  PRIMARY KEY (`category_id`)
)

`category_description` (
  `category_id`,
  `name` ,
  `description`,
  `meta_description`,
  `seo_keyword`,
  PRIMARY KEY (`category_id`),
  UNIQUE KEY `name` (`name`)
)
插入类别表后,获取最后一个类别\u id并将其插入类别\u描述表。我的问题是如何选择带有parnet和child name的类别并显示如下

如果类别有子类别,则应显示此“父类别名称>子类别名称” 如果不是,则应显示此“父类名称”

运行此命令(假定父类类别的父类id列中有空值):


为什么你们有两张桌子?它们之间的关系是1:1,所以这些数据可以合并到一个表中。这不是一个嵌套的集合模型。另外,您不想要一个简单的自联接吗?您尝试过哪些查询?是OpenCart电子商务解决方案吗?@morgoth84。。。我决定拆分这个表,因为将来我将有许多数据要存储,所以将它们存储在一个表中会增加查询执行时间,这是不可能的good@AgRizzo还在努力。我觉得这对我来说很难。
SELECT CONCAT(parent_description.name, 
              COALESCE(CONCAT(' > ', child_description.name)
                       ,'')
              ) AS display_this
FROM category AS parent
JOIN category_description AS parent_description
  ON parent.category_id = parent_description.category_id
LEFT JOIN category AS child
  ON parent.category_id = child.parent_id
LEFT JOIN category_description AS child_description
  ON child.category_id = child_description.category_id
WHERE parent.parent_id IS NULL