簡體   English   中英

SQL 使用子查詢更新列值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM