好的,我有4张桌子。
一个包含列usersidname表。
带有列的表。
一个包含列groupsidname表。
带有列的表。
每个用户可以有几个组。每个组中可以有多个项目。每个项目代表内容的一部分。
我希望能够列出所有的组,以及该组中每个内容的所有持续时间的总和。
我一直在尝试的是:

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

关于mysql - MYSQL - 使用SUM和JOIN,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14773557/

10-11 03:59