mysql - SQL更新除属于特定表的记录之外的所有记录

标签 mysql sql

对于我的表 usersassigned_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/

相关文章:

c# - 如何在一种方法中填充两个表(一对多)并自动添加外键

MySQL 用户通配符使用 BETWEEN

php - 使用 predis 在 redis 中存储 mysql 查询

mysql - 在 MySQL 的 JOIN 中使用 SUM + 现有值进行更新?

mysql - 使用非标准 Group by in 子句进行选择

MYSQL 趋势查询

sql - 这是真的?表现问题

MySQL选择上周的数据

sql - 计算上一季度的最后一天

mysql - 如何在 BigQuery 中查询名为 "OR"的列?