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

发布于 2024-12-21 21:05:18 字数 422 浏览 1 评论 0原文

我有一个包含 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 脚本,可以找出所有下面没有产品的类别(直到任何子级别)。

我该怎么做?

提前致谢。

I have a database of 30000 products and all products has assigned different categories. There is a separate table for all categories & sub-categories are also stored into same table.
The table structure is something like this

Category_mst

category_id_pk, category_name, parent_id

Product_mst

product_id_pk, product_name, category_id_fk (reference to Category_mst->category_id_pk)

Categories are stored upto any number of sub levels.
So there can be categories like below

Clothes > Shirts > Kids > Red Color

Products are stored on any level of Category.
I want to make a query or a php script that can find out all the Categories that have no Products under it(upto any sub level).

How can I do this ?

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

你是我的挚爱i 2024-12-28 21:05:18

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

请参阅:嵌套集模型分层数据
在数据库中实现分层数据结构

You are trying to store hierarchical data in a database.
The naive approach to this is a very poor one, because MySQL does not support recursive queries (unlike Oracle or SQL-server).
Change your database design.

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文