我需要在mysql中创建一个查询,它将列出顶级类别并列出其中的任何子类别。类别和子类别在同一个表中。
例如。

id_category | id_parent | name

1 | 0 | category#1
2 | 1 | subcategory#1
3 | 1 | subcategory#2
4 | 2 | subsubcategory#1
5 | 0 | category#2
5 | 5 | subcategory#3

最佳答案

您试图解决一个常见的问题—如何在关系数据库中存储和检索分层数据?
你应该做的第一件事是在mysql.com上阅读这篇文章,“Managing Hierarchical Data in MySQL”或here
现在,您正在使用“邻接列表”模型。它有几个缺点,其中最主要的一个事实是,基本上不可能编写一个查询来返回您存储的所有树。
您可能需要考虑切换到“嵌套集”模型,该模型在同一页中有很好的解释。
http://dev.mysql.com/tech-resources/articles/hierarchical-data.html

关于mysql - mysql类别和子类别列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4516834/

10-16 07:11