3 つのテーブル、製品、カテゴリ、および couple_product_category があります。結合されたカテゴリの文字列を使用して、データベースからすべての製品が必要です。それはうまくいきますが、まだカテゴリに結合されていない新製品を追加すると、返されません。
パフォーマンスを防ぐための最速の方法が必要です。これは私が今持っているものです:
SELECT
product.id,
product.product_name,
GROUP_CONCAT(productcategory.name SEPARATOR '; ') AS categories
FROM
m_catalog_products AS product
LEFT JOIN
couple_product_category AS category
ON
category.product_id = product.id
INNER JOIN
m_catalog_productcategoy AS productcategory
ON
productcategory.id = category.category_id
GROUP BY
product.id
ORDER BY product.id, product.is_active ASC
これにより、次のような結果になります。
ID Name Categories
-- --------- ----------------------
1 Product A Category A; Category B
2 Product B Category C
ただし、製品 C がまだどのカテゴリにも結合されていない場合は、次のように表示されます。
ID Name Categories
-- --------- ----------------------
1 Product A Category A; Category B
2 Product B Category C
3 Product C