我有一个我在页面上显示的类别列表。
category1(21)
category2(33)
category3(0)
category4(149)
每个都显示了它拥有的物品数量。当我点击某个类别时,它会显示它拥有的所有项目。很简单。
我使用Postgresql。我想知道,从db检索这些数字的更简单有效的方法是什么?好吧,我知道如何选择一个项目的项目数:
select count(1) from ....
但我必须同时为每个类别显示所有这些内容。我该怎么做:我应该使用什么数据结构?查询的外观如何?
当然,他们应该保持相同的顺序,因为在客户端我必须解析它们。
P.S。只有少数类别,例如10-20,并且肯定没有更多。
答案 0 :(得分:2)
希望这可以帮助你。
您应该有两张桌子 - 1. category(id, name)
2. items(id, name, catid)
。我只是采取了最小的字段,但你可以添加。 catid
是项目表中类别id
的引用。
您的查询应该像 -
SELECT c.name as Category, COUNT(i.id) as Items
FROM category as c LEFT OUTER JOIN items as i ON (c.id= i.catid)
GROUP BY c.id ORDER BY c.name