如何基于多个表求和

How to sum based on multiple tables

我在使用 SQL 时遇到了一些问题。

我的 table 是:

氏族 --id

与氏族关联的用户

--id

--clan_id

clan_values 链接用户

--id

--user_id

--值

--类型

我需要从 clan_values 中获取每个氏族的不同值。 一个值是 sum(clan_values.values),其中类型等于 3 作为总时间,另一个值是 sum(clan_values.values),其中类型等于 1 作为总质量。我不知道该怎么做。因此结果集将包含完整的 table 氏族总质量和总时间。这可能吗?

您可以使用这样的条件聚合来完成:

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