我目前正在编写一个复杂的网站,但我有些卡住。我正在写一个查询,该查询返回项目类别的数据。我需要它为每个类别返回一个数组,其中包括类别名称,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/

10-13 06:44