2 u011095901 u011095901 于 2016.03.23 08:42 提问

Mysql 统计求和时如何将查不到的结果置为0

select t.user_id, sum(t.TRADE_MONEY) from lc_account_records t
where t.USER_ID in (42,43,46,50,80)
group by t.USER_ID ;

由于user_id是一个外键,where条件中的user_id可能在这个表中没有记录,查询5条结果只能返回3条结果集,现在想将没有结果的返回0,这该怎么做呢,求各位大神帮忙!

2个回答

zhangjs712
zhangjs712   2016.03.23 08:56

select temp1.USER_ID ,temp12.num from
(select distinct t1.USER_ID from lc_account_records t1 where t1.USER_ID in (42,43,46,50,80) ) as temp1

left join
(select t.user_id, sum(t.TRADE_MONEY) as num from lc_account_records t
where t.USER_ID in (42,43,46,50,80)
group by t.USER_ID) as temp2 on temp1.user_id = temp12.USER_ID

u011095901
u011095901   2016.03.23 09:40

虽然不是我想要的结果,但是还是很感谢了。自己在程序里处理吧,写sql感觉不太好解决。把自己想要的结果贴出来,希望有大神帮忙解决!
user_id, sum(t.TRADE_MONEY)
42, 0
43, 5555859.27
46, 260.00
50, 600.36
80, 0

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!