【发布时间】:2010-09-21 20:45:24
【问题描述】:
您通常需要显示数据库项目的列表以及每个项目的某些汇总数字。例如,当您在 Stack Overflow 上键入标题文本时,会出现“相关问题”列表。该列表显示相关条目的标题以及每个标题的单个汇总响应数量。
我有类似的问题,但需要多个聚合。我想根据用户选项以 3 种格式中的任何一种显示项目列表:
- 我的项目名称(共 15 个,我拥有 13 个)
- 我的项目名称(共 15 个)
- 我的项目名称(我拥有 13 个)
我的数据库是:
- items:itemId、itemName、ownerId
- 类别:catId、catName
- 地图:mapId、itemId、catId
下面的查询得到:类别名称,每个类别的项目 ID 计数
SELECT
categories.catName,
COUNT(map.itemId) AS item_count
FROM categories
LEFT JOIN map
ON categories.catId = map.catId
GROUP BY categories.catName
此获取:类别名称,仅此 owner_id 的每个类别的项目 ID 计数
SELECT categories.catName,
COUNT(map.itemId) AS owner_item_count
FROM categories
LEFT JOIN map
ON categories.catId = map.catId
LEFT JOIN items
ON items.itemId = map.itemId
WHERE owner = @ownerId
GROUP BY categories.catId
但是我如何在单个查询中同时获取它们?即:类别名称、每个类别的项目 ID 计数、仅此 owner_id 的每个类别的项目 ID 计数
奖金。我怎样才能有选择地只检索其中任何一个 catId count != 0 的位置?在尝试“WHERE item_count 0”时,我得到:
MySQL said: Documentation
#1054 - Unknown column 'rid_count' in 'where clause'
【问题讨论】:
标签: mysql sql grouping mysql-error-1054