如何根据多个表进行求和

时间:2016-03-06 11:06:10

标签: sql join mariadb

我遇到了一些SQL问题。

我的表是:

家族 --id

与部落关联的用户

- 编号

- clan_id

与用户关联的

clan_values

- 编号

- USER_ID

- 值

- 型

我需要从clan_values获得每个氏族不同的值。 一个值是sum(clan_values.values),其中type等于3作为totaltime,另一个值是sum(clan_values.values),其中type等于1作为totalmass。我不知道该怎么做。因此,结果集将具有氏族总和质量和总计时间的完整表格。这可能吗?

1 个答案:

答案 0 :(得分:0)

你可以使用这样的条件聚合:

SELECT u.clan_id,
       sum(case when cv.type = 3 then cv.value else 0 end) as totalTime,
       sum(case when cv.type = 1 then cv.value else 0 end) as totalMass
FROM users u
INNER JOIN clan_values cv
 ON(u.id = cv.user_id)
GROUP BY u.clan_id