mysql - 如何根据另一个表中的值设置一个表的字段

标签 mysql sql join

我有两张 table 。第一个包含 ID 列表。第二个有更大的 ID 列表。我只想更新第二个表,如果它不存在于第一个表中。这并没有捕获所有的人:

UPDATE TableB
LEFT OUTER JOIN TableA
ON TableB.id = TableA.id
SET TableB.Status = "Inactive"
WHERE TableB.id IS NULL;

最佳答案

假设 TableB 是“第二个”表,您就很接近了:

UPDATE TableB b LEFT OUTER JOIN
       TableA a
       ON b.id = a.id
    SET b.Status = 'Inactive'
WHERE a.id IS NULL;
------^

您的 WHERE 子句引用了错误的表。

关于mysql - 如何根据另一个表中的值设置一个表的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44484350/

相关文章:

mysql - 连接到主机上的 MySQL 数据库的 Dockerized Web 应用程序

mysql排序和排名语句

MySQL DATE 返回 NULL

以下问题需要 SQL 查询

mysql - 有没有办法将连接表作为数组获取?

连接中每个表的 MySQL AND 替代方案

mysql - 从 SQL Server 更新对链接 MySQL 表的查询

mysql - 基于事件/时间和条件的 SQL

MySQL - 子查询/JOIN同表不同修订项

sql - 查询是否存在多个多对多关系