マゼンタカテゴリはcatalog_category_entity
(pkはentity_id
)に格納されます。製品とカテゴリの関係を調べるには、catalog_category_product
を使用します。その構造は単純です:
+-------------+------------+----------+
| category_id | product_id | position |
+-------------+------------+----------+
| 3 | 5 | 1 |
| 3 | 6 | 1 |
| 3 | 7 | 1 |
+-------------+------------+----------+
ので、製品のすべての種類を取得する:あなたは(カテゴリツリーを表示する)を探している情報が入っていることに注意することが
select cc.* from catalog_category_entity cc
join catalog_category_product cp on cc.entity_id = cp.category_id
where cp.product_id = {{your product id}};
EDITをカテゴリテーブル自体列の抜粋(一部省略):
+-----------+-----------+-------+----------+-------+----------------+
| entity_id | parent_id | path | position | level | children_count |
+-----------+-----------+-------+----------+-------+----------------+
| 1 | 0 | 1 | 0 | 0 | 65 |
| 2 | 1 | 1/2 | 1 | 1 | 64 |
| 3 | 2 | 1/2/3 | 1 | 2 | 9 |
| 4 | 2 | 1/2/4 | 2 | 2 | 18 |
| 5 | 2 | 1/2/5 | 3 | 2 | 9 |
+-----------+-----------+-------+----------+-------+----------------+
あなたは、パス内のすべてのカテゴリのカテゴリIDを取得し、レポートのために自分の名前をロードするためにそのpath
列に分割を使用することができます。
ありがとう!このメソッドを適用すると、bl> skin> faceのようなカテゴリを持つ商品があれば、1)bl> skinと2> bl> skin> faceの2つの項目が表示されます。 – PHP
製品が両方のカテゴリにある場合、そのデータ結果は正しいです。この場合、あなたが見たいと思われるものを記述してください。 –
これは、bl> skin> face b'czのみを表示する必要があります。faceは、製品が属する最終的なサブカテゴリ(スキン)です。 (なぜカテゴリも表示されますか?) – PHP