好的,所以我有4张桌子.
一users列有列id和name.
一个groups与列的表id,name和owner.
一items列有列group和content.
一个content与列的表id,name和duration.
每个用户可以有几个组.每个组中都可以包含多个项目.每个项目代表其中一个内容.
我希望能够列出所有组,其中包含该组内每个内容的所有持续时间的总和.
我一直在努力的是:
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
Run Code Online (Sandbox Code Playgroud)
不幸的是,这只给了我一个结果,所有组中每个内容的所有持续时间的总和 - 如下所示:
"g001", "Group 1", "Me", "400"
Run Code Online (Sandbox Code Playgroud)
我期待的是:
"g001", "Group 1", "Me", "160"
"g002", "Group 2", "You", "160"
"g003", "Group 3", "Them", "80"
Run Code Online (Sandbox Code Playgroud)
ech*_*_Me 17
试试这个
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
Run Code Online (Sandbox Code Playgroud)