好的,我有4张桌子。
一个包含列users
和id
的name
表。
带有列的表。
一个包含列groups
和id
的name
表。
带有列的表。
每个用户可以有几个组。每个组中可以有多个项目。每个项目代表内容的一部分。
我希望能够列出所有的组,以及该组中每个内容的所有持续时间的总和。
我一直在尝试的是:
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/