更新与另一个表的内部连接

Posted

技术标签:

【中文标题】更新与另一个表的内部连接【英文标题】:UPDATE on inner join with another table 【发布时间】:2015-05-07 18:41:39 【问题描述】:

我正在尝试仅更新年龄为 21 岁且 users_auth.email 与 ban_users.email 匹配的 users.banned 值。 (ban_users 是一个单独的表)

UPDATE users_auth
SET users_auth.banned = '1'
WHERE age='21'
INNER JOIN ban_users
ON users_auth.email = ban_users.email

我找到了这两个帖子,但似乎都没有帮助。

SQL Server - inner join when updating

How do I UPDATE from a SELECT in SQL Server?

感谢您的帮助。

【问题讨论】:

【参考方案1】:

语法不正确,应该如下。

UPDATE users_auth
INNER JOIN ban_users
ON users_auth.email = ban_users.email
SET users_auth.banned = '1'
WHERE age='21'

【讨论】:

【参考方案2】:

试试这个:

UPDATE ua
SET banned = '1'
FROM users_auth ua
INNER JOIN ban_users
ON ua.email = ban_users.email
WHERE age='21'

【讨论】:

以上是关于更新与另一个表的内部连接的主要内容,如果未能解决你的问题,请参考以下文章

将一个表的连接列与另一个表的一列组合成 JAVA 对象

Postgres 使用跨 2 个表的内部连接进行更新?

如何在Oracle中多次更新与另一个表连接的表?

SQL Server-交叉联接内部联接基础回顾

mysql更新列内部连接另一个表

如何在同一张表上进行多个连接,然后与另一个表连接?