[英]How to update mysql column with another value from another table?
假設存在另一個名為“ project”的表,並且有兩個表與雇員輸出的“ projectId”列中“:”后面提到的編號相關,如何用項目名稱替換“ projectId”列中的值。
> select * from employee;
+----+-----------+
| id | projectId |
+----+-----------+
| 1 | project:1 |
+----+-----------+
所需輸出:
+----+-----------------------+
| id | projectId |
+----+-----------------------+
| 1 | project:internProject |
+----+-----------------------+
所需步驟:
提取整數[done]
update employee SET projectId = substring_index(projectId,':', -1);
更新名稱為projectID的[不確定:(]
update employee SET projectId = concat('project:', select projectName from projects where projects.projectID = employee.projectId);
您需要在子請求周圍加括號。
update employee e
set projectId = concat('project:',
(select projectName
from projects
where projectId = substring_index(e.projectId, ':', -1)));
這應該做的工作:
UPDATE employee e, projects p
SET e.projectId = CONCAT('project:',p.projectName)
WHERE substring_index(e.projectId,':', -1) = p.projectID
項目是一個常數還是會改變? 如果是這樣,您需要從員工那里接管
使用SUBSTRING_INDEX
和JOIN
。
詢問
update employee e
join project p
on e.id = p.id
set e.pid = concat(substring_index(e.pid, ':', 1), ':',
p.pname);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.