mysql 子查询 求和更新数据

邻里 发布于 2016/05/27 22:06
阅读 859
收藏 0

现在会员A表, 另一张B表,

现在我想用一条语句把A表里的会员在B表里的数据求和后更新到A表!


UPDATE record r, user u SET u.service_time=sum(r.service_time) WHERE r.user_uid = u.uid AND r.service_time <> 0 AND r.is_check = 1;
上面语句不行,然后我用了下面个子查询



update user u, (select sum(service_time) as total, user_uid from record where service_time <> 0 AND is_check = 1) r set u.service_time=r.total where r.user_uid = u.uid;
上面也不行,虽然没有报错,但是执行下去,并没有更新到数据!然后我把条件移到了子查询内也不行!
update user u, (select sum(service_time) as total, user_uid from record where service_time <> 0 AND is_check = 1) r set u.service_time=r.total where r.user_uid = u.uid;

在此感谢大家的帮忙!


加载中
1
mark35
mark35
mysql上别折腾复杂逻辑sql实现
sss6666
sss6666
无比赞同
0
vvtf
vvtf
update 
  user u,
  (select 
    sum(service_time) t, user_uid
   from 
     record group by user_uid
  ) r
 set u.service_time=r.t 
where
 u.uid=r.user_uid



邻里
邻里
好的谢谢,周一我试下,当时没想到,就把一张表里的分组统计后存在一张临时表,然后再和临时表比对更新的!
0
邻里
邻里

引用来自“vvtf”的评论

update 
  user u,
  (select 
    sum(service_time) t, user_uid
   from 
     record group by user_uid
  ) r
 set u.service_time=r.t 
where
 u.uid=r.user_uid



谢了,明天上班试下效果!
0
都一样

没有用 group by 所导致的

返回顶部
顶部