简体   繁体   English

连接表时,MySQL选择SUM

[英]MySQL select SUM when a table is joined

SELECT u.user_id, u.website, u.phone, SUM( r.redeem_amount ) , SUM( r.redeem_paid )
FROM users u
LEFT JOIN redeemed r ON u.user_id = r.redeem_user_id
WHERE r.redeem_state = '0'
GROUP BY u.website

What am trying to do, is to select the SUM of redeem amount from table redeem against each website, each website should be selected it's total (SUM) from redeem table 要做的是从每个网站的表赎回中选择赎回金额的总和,应该从每个赎回表中选择每个网站的总和(SUM)

The provided query is able to select each website but failing to select SUM from table redeem as it is select only one row from redeem not total of that website. 提供的查询能够选择每个网站,但无法从表兑换中选择SUM,因为它只能从兑换中选择一行而不是该网站的总数。

Can I have your help or be pointed where am getting things wrong and how I can improve this. 我可以在您的帮助下指出问题出在哪里以及如何改进它。 I know to some you may fee it simple but I can't get the trick as am not too advanced in MySQL. 我知道有些人可能会觉得很简单,但由于MySQL不太先进,所以我无法掌握窍门。

http://sqlfiddle.com/#!9/9eecb7d http://sqlfiddle.com/#!9/9eecb7d

Well, Try to use the below : 好吧,尝试使用以下方法:

SELECT u.user_id, u.website, u.phone, SUM( r.redeem_amount ) , SUM( r.redeem_paid ) FROM users u LEFT JOIN redeemed r ON u.user_id = r.redeem_user_id WHERE r.redeem_state = '0' GROUP BY r.redeem_user_id 从用户中选择u.user_id,u.website,u.phone,SUM(r.redeem_paid),SUM(r.redeem_paid)u LEJO JOIN已兑换r ON u.user_id = r.redeem_user_id WHERE r.redeem_state ='0'GROUP由r.redeem_user_id

兑换表

用户表

结果

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM