mysql类别和子类别列表

sre*_*avc 1 mysql

我需要在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 
Run Code Online (Sandbox Code Playgroud)

Teh*_*ike 5

您正在尝试解决一个常见问题 - 如何在关系数据库中存储和检索分层数据?

您应该做的第一件事是在mysql.com上阅读本文," 在MySQL中管理分层数据 "此处.

现在,您正在使用"邻接列表"模型.它有几个缺点,其中最主要的是这样一个事实,即编写一个将返回你所存储的所有树的查询基本上是不可能的.

您可能需要考虑切换到"嵌套集"模型,该模型在同一页面上有详细说明.

http://dev.mysql.com/tech-resources/articles/hierarchical-data.html