基于复杂选择的MySQL UPDATE

时间:2014-04-30 21:39:40

标签: mysql

我有一个问题:

SELECT assets.serial, employees.uid from assets
inner join emp_as on assets.serial = emp_as.serial
inner join employees on concat(emp_as.first_name,emp_as.last_name) = concat(employees.first_name,employees.last_name)

返回两列,asset serial(唯一)和employee ID。我想将assets.employee_id字段更新为select.employee_id where the asset.serial = select.serial(选择该查询结果的伪代码)。

2 个答案:

答案 0 :(得分:0)

这应该做的工作:

UPDATE assets set assets.employee_id = employees.uid
inner join emp_as on assets.serial = emp_as.serial
inner join employees on concat(emp_as.first_name,emp_as.last_name) = concat(employees.first_name,employees.last_name)

答案 1 :(得分:0)

如果没有看到您的数据库,我无法100%确定这是您想要的,但我相信这应该有效。 Mysql非常友好地允许更新连接,因此您不必担心创建临时表或子查询。

update assets
join emp_as on assets.serial = emp_as.serial
join employees on concat(emp_as.first_name,emp_as.last_name) = concat(employees.first_name,employees.last_name)
set assets.employee_id = employees.uid