我想使用与该用户关联的电子邮件数量更新所有用户记录。所以我有
| userid |名字| emailcount |
和
| userid | emaildata
我正在尝试制作单个UPDATE查询,该查询将使用该用户拥有的电子邮件数填充emailcount。
我尝试使用单个UPDATE但无法使其正常工作;我是否需要以某种方式使用子查询来执行此操作?
答案 0 :(得分:2)
正如Elliot建议的那样,您可以删除列emailcount
并使用如下查询动态生成值:
select userid, name, coalesce(ec.count, 0) as emailcount
from User u
left outer join (
select userid, count(*) as count
from Email
group by userid
) ec on u.userid = ec.userid
答案 1 :(得分:1)
如果你想做这个动作我建议这个查询,但它没有在MySQL上测试,我现在没有访问权限。我希望这是正确的,如果没有请其他人可以纠正我
UPDATE user SET emailcount = (SELECT count(*) FROM emaildata WHERE emaildata.userid user.userid)