开发者社区> 问答> 正文

mysql 子查询 求和更新数据?报错

现在会员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;

在此感谢大家的帮忙!


展开
收起
爱吃鱼的程序员 2020-06-09 14:20:15 640 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    mysql上别折腾复杂逻辑sql实现无比赞同<preclass="brush:cpp;toolbar:true;auto-links:false;">updateuseru,(selectsum(service_time)t,user_uidfromrecordgroupbyuser_uid)rsetu.service_time=r.twhereu.uid=r.user_uid



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

    引用来自“vvtf”的评论

    <preclass="brush:cpp;toolbar:true;auto-links:false;">updateuseru,(selectsum(service_time)t,user_uidfromrecordgroupbyuser_uid)rsetu.service_time=r.twhereu.uid=r.user_uid



    没有用groupby所导致的

    2020-06-09 14:20:31
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像