加入收藏 | 设为首页 | 会员中心 | 我要投稿 温州站长网 (https://www.0577zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

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

发布时间:2021-05-24 13:26:59 所属栏目:MySql教程 来源:网络整理
导读:在MySQL数据库表中,我想用查询结果更新一些行. 例如,我有一张桌子 TABLE employees( employeeId int,salary int,) 并且我想仅更新下面查询中出现的行,其中employeeIds匹配并且newSalary成为工资的修改值 (SELECT employeeId,newSalary FROM ....) 我原本以

在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

(编辑:温州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读