【问题标题】:How can I get total amount each row using mysql?如何使用 mysql 获取每行的总金额?
【发布时间】:2016-12-09 08:13:11
【问题描述】:

我想获得每个用户的总金额。我已经给了表格所需的输出

用户表

user_id  name
 1  Shanmugam
 2  Sharavanan
 3  Selvam

付款表

user_id amount
  1      5
  2      7
  1      5
  2      4

我想要下面的输出

name        total
shanmugam    10
sharavan    11
selvam      0

请任何人帮助如何编写mysql查询

我已尝试以下查询 选择 用户名
SUM(金额) 作为总计 从 支付 让加入用户 user.user_id =payent.user_id

【问题讨论】:

  • 你能贴出到目前为止尝试过的代码吗?
  • 提示:JOINGROUP BY
  • SELECT user.name, SUM(payment.amount) as total FROM user INNER JOIN payment ON (user.user_id = payment.user_id) GROUP BY user.user_id

标签: php mysql


【解决方案1】:

尝试类似的方法:

SELECT SUM(p.amount) AS total, u.name FROM Payment 
INNER JOIN User AS u ON u.id = p.user_id 
GROUP BY p.user_id;

【讨论】:

    【解决方案2】:

    看似简单,完全可以自己完成,注意使用left join

    select
        u.name,
        coalesce(sum(p.amount), 0) as total
    from user u
    left join payment p
    on u.user_id = p.user_id
    group by u.user_id
    

    在此处查看demo

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多