【mysql】多表关联更新

更新USER表的用户名

把 user_new 表的用户名,更新给 user, 两张表通过 id 进行关联

UPDATE user u
SET u.name = (
    SELECT name FROM user_new un WHERE u.id = un.id
)
WHERE u.is_del = 0

这样写的话,会出现:1048 - Column 'name' cannot be null, Time: 0.022000s

如按如下写法:

UPDATE user u
SET u.name = (
    SELECT name FROM user_new un WHERE u.id = un.id
)
WHERE u.is_del = 0
AND EXISTS (
    SELECT 1 FROM user_new un WHERE u.id = un.id
);
posted @ 2025-06-12 16:23  aaacarrot  阅读(11)  评论(0)    收藏  举报