これは非常に簡単なはずなので、今は少し脳がフリーズしています(と思います)。
私は3つのテーブルを持っています:
- 製品一覧
- カテゴリ一覧
- category_map (商品とカテゴリーのリンク)
商品をそのカテゴリ(名前)で一覧表示したい。1 つの製品に複数のカテゴリが含まれる場合があります。
// This query
SELECT a.id, a.name, b.category
FROM sl_link_product_category c
LEFT JOIN sl_product a ON c.fk_productID = a.id
LEFT JOIN sl_category b ON c.fk_categoryID = b.id
WHERE c.fk_categoryID = b.id
ORDER BY a.id
// Gives me this result
| 1 | product 1 | cat 1 |
| 1 | product 1 | cat 2 |
| 1 | product 1 | cat 3 |
| 2 | product 2 | cat 2 |
| 2 | product 2 | cat 4 |
ここで、最終的な結果セットで、各製品がカテゴリの配列を持つ製品の配列が必要です。
私の質問は; 目標を達成するために、PHP で結果セットを操作する必要がありますか? または、MySQL ですべてのカテゴリ (カンマ区切り) を 1 つの変数/列に入れることは可能ですか?