[英]SQL Update column values using subquery
在 MySQL 數據庫表中,我想用查詢結果UPDATE
一些行。
例如,我有一張桌子
TABLE employees(
employeeId int,
salary int,
)
我只想UPDATE
出現在以下查詢中的行, employeeId
匹配並且newSalary
成為salary
的修改值
(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
update employees, tempTable
set employees.salary=tempTable.newSalary
wnere employees.employeeId=tempTable.employeeId;
update employees
inner join temptable
on employees.employeeid = temptable.employeeid
set employees.salary = temptable.newsalary
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.