如何使用mysql搜索到子级别类别?

时间:2011-12-19 06:58:16

标签: php mysql select categories product

我有一个包含30000种产品的数据库,所有产品都分配了不同的类别。所有类别都有一个单独的表格。子类别也存储在同一个表中。 表结构就是这样的

Category_mst

category_id_pk,category_name,parent_id

Product_mst

product_id_pk,product_name,category_id_fk(对Category_mst-> category_id_pk的引用)

类别存储到任意数量的子级别。 所以可以有类似下面的类别

衣服>衬衫>孩子>红色

产品存储在任何级别的类别中。 我想创建一个查询或php脚本,可以找出所有没有产品的类别(直到任何子级别)。

我该怎么做?

提前致谢。

1 个答案:

答案 0 :(得分:1)

您正尝试将分层数据存储在数据库中 这种天真的方法非常糟糕,因为MySQL不支持递归查询(与Oracle或SQL服务器不同)。
更改数据库设计。

请参阅:The Nested Set Model hierarchical data
Implementing a hierarchical data structure in a database