【问题标题】:MYSQL - Inner join with select statement to fetch SumMYSQL - 使用 select 语句进行内部连接以获取 Sum
【发布时间】:2013-03-22 07:06:48
【问题描述】:

现在我有以下查询:

SELECT
ui.email,
ui.userid,
SUM(ep.earnPoints),
ep.add_date
from earn_points as ep 
INNER JOIN user_info as ui on ep.userid on ui.userid 
where DATE(rc.add_date) = '2012-03-22';

我想通过各自的电子邮件获取个人使用的总收入点数

所以我的最终输出应该如下所示:

-----------------------------------------------------------
userid      email                   earnPoints      date        
1           testuser@gmail.com      45              2012-03-22
2           testuser123@gmail.com   10              2012-03-22
3           testuser145@gmail.com   18              2012-03-22
-----------------------------------------------------------

【问题讨论】:

  • 你有什么问题?
  • 您的查询有错误吗?
  • 它给了我这样的输出 ------------------------------------- ---------------------- 用户 ID 电子邮件 EarnPoints 日期 1 testuser@gmail.com 73 2012-03-22 ------------ -----------------------------------------------------------虽然我有在 while 循环中获取它给了我所有用户所有点的总和的单个记录

标签: mysql sql sum inner-join


【解决方案1】:
SELECT
ui.email,
ui.userid,
SUM(ep.earnPoints),
ep.add_date
from earn_points as ep 
INNER JOIN user_info as ui on ep.userid = ui.userid 
where DATE(rc.add_date) = '2012-03-22' Group By ui.email,ui.userid,ep.add_date;

【讨论】:

    【解决方案2】:

    您只缺少分组:

    SELECT
    ui.email,
    ui.userid,
    SUM(ep.earnPoints),
    ep.add_date
    from earn_points as ep 
    INNER JOIN user_info as ui on ep.userid on ui.userid 
    where DATE(rc.add_date) = '2012-03-22'
    Group By ui.email,ui.userid,ep.add_date
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-26
      • 1970-01-01
      • 2011-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-18
      • 1970-01-01
      相关资源
      最近更新 更多