mysql类别和子类别列表

时间:2010-12-23 07:58:24

标签: 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 

2 个答案:

答案 0 :(得分:5)

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

你应该做的第一件事是在mysql.com上阅读这篇文章,“Managing Hierarchical Data in MySQL here

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

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

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

答案 1 :(得分:0)

检查类别&amp;子类别

select m.id as cat_id ,m.name as category, e.name as sabcategory  from category e inner join category m on e.parent_id=m.id order by m.id