繁体   English   中英

PHP MySQL项目类别

[英]PHP MySQL item categories

我正在尝试显示具有其名称和它们所属的所有类别的项目的列表。

我的数据库结构是:

Items table with Id, Item_Name.
Categories table with Id, Category_Name
Items_Categories table with Id, Item_id, Category_id.

我想在带有项目名称的表中显示结果,并以逗号分隔其类别名称的列表。 我不确定如何通过单个查询执行此操作。 提前致谢。

您需要使用mysql中可用的GROUP_CONCAT函数:

select i.item_name, group_concat(c.category_name) as categories
from items i
inner join items_categories ic on i.id = ic.item_id
inner join categories c on ic.category_id = c.id
group by i.item_name

我不会为您编写它,但是您需要使用group_concat()函数(MySQL)。

SELECT i.Item_Name, GROUP_CONCAT(c.Category_Name) AS Category_List
FROM Items AS i
LEFT OUTER JOIN (
  Items_Categories AS ic 
  INNER JOIN Categories AS c ON ic.Category_id = c.Id
) ON i.Id = ic.Item_id
GROUP BY i.Id;

我必须说我没有测试此查询,但是它应该类似于以下内容:

SELECT i.Id, i.Item_name, GROUP_CONCAT(c.Category_Name) AS category_list
FROM Items i
JOIN Items_categories ci ON ci.Item_id = i.Id
LEFT JOIN Categories c ON c.Id = ci.Id
GROUP BY i.Id

请注意,您可以使用GROUP_CONCAT创建逗号分隔列表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM