MySQL-Using SUM WITH JOIN

2022-02-23 00:00:00 join sum mysql

好的,我有4张表。

Ausers表,列idname

包含列idnameownergroups表。

Aitems表,列groupcontent

Acontent表,列idnameduration

每个用户可以有多个组。每个组中可以有几个项目。每项代表一条内容。

我希望能够列出所有组以及该组中每条内容的所有持续时间总和。

我一直在尝试的是这样的:

select groups.id,groups.name,users.name,sum(content.duration) as duration from groups
join users on groups.owner=users.id
join items on items.group=groups.id
join content on content.id=items.content

遗憾的是,这只给出了一个结果,即所有组中每条内容的所有持续时间的总和-如下所示:

"g001", "Group 1", "Me", "400"

我期望的内容是这样的:

"g001", "Group 1", "Me", "160"
"g002", "Group 2", "You", "160"
"g003", "Group 3", "Them", "80"

解决方案

试试

   select groups.id,groups.name,users.name,sum(content.duration) as duration from groups
   join users on groups.owner=users.id
   join items on items.group=groups.id
   join content on content.id=items.content
   group by groups.name

相关文章