日期:2014-05-17  浏览次数:20423 次

问下这个SQL的写法
本帖最后由 u011669689 于 2013-09-25 18:25:00 编辑
基础条件:
user表  userid ,username 
user_money 表  u_id,user_money
user_money_exchange  表:money ,username,ordertag =1或2

现在想执行:

update user_money set user_money =  (user_money_exchange   当ordertag =1的 sum(money) + 当ordertag =2的 sum(money)) where  user_money.u_id = user.userid



update user_money 
set user_money.money = 

(select sum(ume.money) as m , u.userid from user_money_exchange ume  left join user u on ume.username = u.username where ume.ordertag = 1 group by ume.username
 + 
select sum(ume.money) as m , u.userid from user_money_exchange ume  left join user u on ume.username = u.username where ume.ordertag = 2 group by ume.username) 

where user_money.u_id = u.userid



这个是错的,想知道对的是?谢谢各位了
sql select update

------解决方案--------------------
试试
update user_money um left join user u on um.u_id=u.userid
left join  
(select username,sum(money) as moneys from user_money_exchange group by username) ume
on ume.username=u.username
set um.money = ume.moneys