对于我的表 users
和 assigned_roles
我想设置 users.confirmed = 0
除了 users
所属的地方到 assigned_roles
。
assigned_roles 表
编号|用户编号|角色
SQL
UPDATE users, assigned_roles
SET users.confirmed=0
WHERE users.id != assigned_roles.user_id
我知道我的最后一行是错误的。执行查询以使其在所有用户(具有指定角色的用户除外)上运行的正确方法是什么?
最佳答案
你很接近。只需要在那个 WHERE 子句中有一个子查询:
UPDATE users
SET confirmed=0
WHERE id NOT IN (SELECT user_id FROM assigned_roles);
关于mysql - SQL更新除属于特定表的记录之外的所有记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43723409/