【问题标题】:Select the sum of values from 2 tables and group by common foreign key从2个表中选择值的总和并按公共外键分组
【发布时间】:2021-04-10 14:58:31
【问题描述】:

我有两张桌子,我想:

1.-从表“A”中选择每个'id_user'的计数:

查询:

SELECT COUNT(*), user.user_name as user_name
FROM A
INNER JOIN user
ON A.ID_user = user.ID_USER
GROUP BY ID_user;

结果:

2.-从表“B”中选择每个'id_user'的值SCORE

查询:

SELECT SCORE, user.user_name as user_name
FROM B
INNER JOIN user
ON B.id_user = user.id_user_name
GROUP BY id_user;

结果:

3.-将这两个值相加并显示按用户名分组的总分:

我的预期输出是这样的,包括表 A 和表 B 上的分数总和:

预期输出:

【问题讨论】:

    标签: mysql sql join


    【解决方案1】:

    这是你想要的吗?

    select u.*,
           (select sum(a.score) from a where a.id_user = u.id_user) as a_sum,
           (select sum(b.score) from b where b.id_user = u.id_user) as b_sum
    from user u;
    

    如果你想要总分,只需将它们相加即可:

    select u.*,
           ( (select COUNT(1)  from a where a.id_user = u.id_user) +
             (select coalesce(sum(b.score), 0) from b where b.id_user = u.id_user)
           ) as ab_sum
    from user u;
    

    【讨论】:

    • @ChristopherMartinez 。 . .如果您想要总数,只需将它们加在一起即可。
    猜你喜欢
    • 2016-09-19
    • 2014-10-17
    • 2015-07-17
    • 1970-01-01
    • 2021-03-29
    • 1970-01-01
    • 1970-01-01
    • 2017-09-12
    • 2021-08-19
    相关资源
    最近更新 更多