好的问题是,我必须对两个链接的表中的两个和求和
第一表要点:
id | user_id | point | hit 1 | 1 | 4 | yes 2 | 1 | 2 | yes 3 | 1 | -3 | no 4 | 1 | 4 | mb 5 | 2 | 2 | yes 6 | 2 | -3 | no 7 | 2 | 4 | mb
第二张表的收入:
id | user_id | earning 1 | 1 | 5 2 | 1 | 2 3 | 1 | 3 4 | 1 | 4 5 | 2 | 2 6 | 2 | 3 7 | 2 | 4
现在我试过的是:
SELECT p.id, SUM( SUM(p.point) + SUM(e.earning) ) AS bb FROM points p LEFT JOIN earnings e ON p.user_id = e.user_id WHERE (p.hit = "yes" OR p.hit = "no") GROUP BY p.user_id
但我得到了错误的结果
我想得到这个:
id | bb 1 | 17 2 | 8
谢谢!
如果要获得每位用户的总收入,则可能应该先确定要为其获得收入的用户。最明智的选择可能是使用users表本身作为基础。
SELECT user_id, (SELECT SUM(point) FROM points WHERE user_id = u.user_id ) + (SELECT SUM(earning) FROM earnings WHERE user_id = u.user_id AND p.hit IN ('yes', 'no') ) AS bb FROM users
这种方法的附加好处是可以报告没有积分和/或收入的用户。