我现在有点大脑冻结,因为这应该很容易(我认为)。
我有三张桌子:
- 产品列表
- 类别列表
- category_map(链接产品和类别)
我想列出产品及其类别(名称)。一种产品可能有多个类别。
// 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 中将所有类别(逗号分隔)放在一个变量/列中?