我正在分类广告网站上工作,我有一个关于检索搜索结果的问题。
我的目标是在类别名称旁边显示每个类别中的分类数量。
例如:
从MySql数据库表中获取这些计数的理想方法是什么?
是否要将一个查询写入数据库中的每个表?这对于一个访问者来说意味着很多查询,并且可能会导致性能问题?
由于
更新:
我还没有创建MySql表,所以如果它在计数中发挥重要作用,请随意推荐理想的结构。
答案 0 :(得分:1)
我更希望有一个查询来满足这种需求。
假设你有一个分类表,并且没有分类产品说产品,你应该可以这样做:
Select C.Category, Count(P.Id) as ProductsCount
From Categories C left join Products P on C.Id = P.Category_Id
Group by C.Category
Order by C.Category
答案 1 :(得分:1)
您可以使用count(*)进行简单查询,并按类别ID /名称进行分组。
SELECT Categories.name, count(*) as cnt
FROM Categories
LEFT JOIN Classifieds
ON Classifieds.CategoryID=Categories.ID
WHERE Classifieds.EndDate > NOW()
GROUP BY Categories.name
ORDER BY Categories.name
这样可以获得所有类别名称以及分类尚未结束的每个名称的计数。