我有一个包含项目的目录类别。主目录页面必须显示类别列表以及每个类别内的商品数量,并且“预览”图片必须是同一类别中浏览次数最多的商品。
catalogue_cat
- id_cat
- 姓名
catalogue_item
- id_item
- 姓名
- 图片网址
观看次数(INT)
SELECT Catalogue_cat.id_cat, Catalogue_cat.name, COUNT(catalogue_item.id_item) AS q 来自catalog_cat 左连接 Catalogue_item ON Catalogue_item.id_cat = Catalogue_cat.id_cat GROUP BY Catalogue_cat.id_cat ORDER BY Catalogue_cat.name
这只会给我带来带有项目数量的类别列表。我仍然需要每个类别中浏览次数最多的商品的图片。有任何想法吗?谢谢!
最佳答案
您已经在进行group by
,因此最好的方法是substring_index()
/group by
方法:
SELECT c.id_cat, c.name, COUNT(i.id_item) AS q,
SUBSTRING_INDEX(GROUP_CONCAT(i.url ORDER BY i.views DESC), ',', 1) as MostViewedURL
FROM catalogue_cat c LEFT JOIN
catalogue_item ci
ON i.id_cat = c.id_cat
GROUP BY c.id_cat
ORDER BY c.name;
请注意,这假设 URL 中不包含逗号。如果这样做,您将需要找到另一个分隔符。
关于mysql - 如何在 MySQL 中获取 parent 浏览次数最多的 child ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23795178/