-4

我在一个分类广告网站上工作,我有一个关于检索搜索结果的问题。

我的目标是在类别名称旁边显示每个类别中的分类数量。

例如:

  • 红车 ( 821 )
  • 安卓手机 (291 )
  • 笔记本电脑 ( 929 )

从 MySql 数据库表中获取这些计数的理想方法是什么?

是对数据库中的每个表都写一个查询吗?这将意味着对一位访问者进行大量查询,并可能导致性能问题?

谢谢

更新:

我还没有创建 MySql 表,所以如果它在计数中起着重要作用,请随意推荐理想的结构。

4

2 回答 2

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
于 2013-05-09T20:57:08.343 回答
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

这将为您提供所有类别名称以及分类尚未结束的每个名称的计数。

于 2013-05-09T20:58:10.097 回答