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

标签 php mysql select categories product

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

类别_mst

category_id_pk、category_name、parent_id

产品_mst

product_id_pk、product_name、category_id_fk(引用 Category_mst->category_id_pk)

类别最多可存储任意数量的子级别。 所以可以有如下类别

衣服 > 衬衫 > 童装 > 红色

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

我该怎么做?

提前致谢。

最佳答案

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

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

关于php - 如何使用 mysql 搜索子级别类别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8558075/

相关文章:

php - 按位置显示项目。 MySQL选择

mysql - 如何在此查询中也包含当前提供的日期信息

mysql - 具有重复值的 JOIN 上的更新表仅返回第一个值

mysql - SQL 命令仅针对 postgres 中的一张表卡住

php - 在第一个表插入时更新第二个表的 SQL 语法

php - 浏览器停止/崩溃是否会停止脚本执行?

mysql - 此查询仍返回空标题字段?

php - 无法通过 PHP 将 NSData 上传到 MySQL

php - Selenium 测试在执行 javascript 时随机崩溃

php - 不同/连接两个表