我有一个包含现有数据的表users
,我将更新的数据上传到临时表users_temp
。
我正在尝试创建两个查询,一个用于更新name
中的department_id
和users
行以及来自匹配users_temp
的{{1}}的数据。
另一个用于移除id
中users
中没有匹配id
的行。
请帮忙。
答案 0 :(得分:2)
您可以通过在更新中添加联接来执行此操作。
UPDATE users u
INNER JOIN users_temp ut on u.id = ut.id //or whatever the matching fields are
SET u.name = ut.name, u.department_id = ut.department_id;
我确定有人会为第二个查询提供更有效的示例,但这可以解决问题:
答案 1 :(得分:1)
update users
inner join users_temp using (id)
set users.name = users_temp.name,
users.department_id = users_temp.department_id
delete from users
where not exists (select * from users_temp where users_temp.id = users.id)