mysqlを使ってどのようにサブレベルのカテゴリを検索できますか?

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)

カテゴリは、任意の数のサブレベルまで格納されます。 したがって、以下のようなカテゴリがあります

Clothes > Shirts > Kids > Red Color

製品はあらゆるレベルのカテゴリに格納されます。 私はそれの下に製品を持っていないすべてのカテゴリを(すべてのサブレベルまで)見つけることができるクエリやPHPスクリプトを作りたいと思います。

これどうやってするの ?

前もって感謝します。

0
各サブカテゴリに対して category_id_pk を取得できる場合は、SQLで OR ステートメントを使用します(「product_m_startからのproduct_id_pkの選択はcategory_id_pk = Xまたはcategory_id_pk = Yまたはcategory_id_pk = Z」) 。次に、mysql_num_rows()を使用します。
追加された 著者 Zulkhaery Basrul,
私はあなたの人生をより簡単にするためにデータベース設計を変更することをお勧めします。この記事をチェックする vbmysql.com/articles/database-design /…
追加された 著者 Khronos,

1 答え

階層データをデータベースに格納しようとしています。
MySQLは再帰的なクエリをサポートしていないため、これに対する単純なアプローチは非常に貧弱です(OracleやSQLサーバとは異なります)。
データベース設計を変更します。

ネストセットモデル階層データ
データベースに階層データ構造を実装する

1
追加された
PHP - 日本のコミュニティ [ja]
PHP - 日本のコミュニティ [ja]
4 参加者の

このグループではPHPについて話します。 パートナー:kotaeta.com