我目前正在编写一个复杂的网站,但我有些卡住。我正在写一个查询,该查询返回项目类别的数据。我需要它为每个类别返回一个数组,其中包括类别名称,ID和描述,以及使用该类别的项目数以及该类别下每个项目的值加起来。
换句话说,我想返回:
categoryid = 1
name = category name
description = category description
totalavailable = number of items in category
totaldownloads = downloads value from each item in category added together.
到目前为止,这是我的查询(它只返回计数和总和,它们实际上并没有起作用)。
SELECT
category, SUM(downloads) as totaldownloads, count(*) as totalavailable
FROM
downloads
WHERE
category IN(SELECT categoryid FROM categories)
这是我的架构的图片:
请帮我!我被卡住了!
最佳答案
您的查询几乎是完美的,只需对两个表进行JOIN
即可获取所有值:
SELECT
c.categoryid,
c.name,
c.description,
COUNT(*) AS totalavailable,
SUM(d.downloads) AS totaldownloads
FROM
categories c
INNER JOIN
downloads d
ON
c.categoryid = d.category
WHERE
/* whatever */
GROUP BY
c.categoryid,
c.name,
c.description
关于mysql - 合并查询以返回单个响应,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13664774/