微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用具有相同外键的其他行的值更新行

如何解决如何使用具有相同外键的其他行的值更新行

提前致谢!这就是我所拥有的:

primary_key | foreign_key   | field_to_update
---------------------------------------------
          1 |             1 |              A 
          2 |             1 |              - 
          3 |             2 |              B
          4 |             2 |              -
---------------------------------------------

预期结果:

primary_key | foreign_key   | field_to_update
---------------------------------------------
          1 |             1 |              A 
          2 |             1 |              A 
          3 |             2 |              B
          4 |             2 |              B
---------------------------------------------

我将如何进行?我认为我做不到:

UPDATE table
SET field_to_update = field_to_update
WHERE ...

这似乎没有意义。有人可以帮我解决这个问题吗?

解决方法

您可以将 updatejoin 一起使用:

update t join
       (select foreign_key,max(field_to_update) as field_to_update
        from t 
        group by foreign_key
       ) tt
       on t.foreign_key = tt.foreign_key
    set t.field_to_update = tt.field_to_update
    where t.field_to_update is null;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。