mysql – 使用子查询的SQL Update列值

前端之家收集整理的这篇文章主要介绍了mysql – 使用子查询的SQL Update列值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

MySQL数据库表中,我想用查询结果更新一些行.

例如,我有一张桌子

TABLE employees(
  employeeId int,salary int,)

并且我想仅更新下面查询中出现的行,其中employeeIds匹配并且newSalary成为工资的修改

(SELECT employeeId,newSalary FROM ....)

我原本以为将结果加载到临时表中,但我不知道如何获取SET值,如此处所示

UPDATE employees
SET salary = (???)
WHERE employeeId exists in tempTable

您可能会评论这会导致非规范化,我知道这一点.我怀疑会有一些“你不想这样做”的类型反应,为了简洁起见,请假设我有充分的理由.

最佳答案
加入您要更新的子查询和表格:

UPDATE employees x INNER JOIN (
    SELECT employeeId,newSalary FROM ....
) y ON x.employeeId=y.employeeId
SET x.salary=y.newSalary
原文链接:https://www.f2er.com/mysql/433353.html

猜你在找的MySQL相关文章