mysql用关联表的某个字段值更新目标表某个字段

因为用户表和部门表是通过数据同步从其他数据库复制过来的数据,因为系统Bug的原因,某些用户调整了部门之后,没有同步更新到本数据库,这里就导致了当前数据库中的用户所属部门还是原来的部门,系统的bug修复了,但是已经更新过的数据所属部门还是错的,而且因为用户数量巨大,从管理系统中也不知道哪些用户没有同步部门,于是就使用sql语句直接更新部门信息。涉及到的用户表关联部门表,然后用部门id更新用户表department_id 的sql语句如下:

UPDATE `user` u
LEFT JOIN department d ON d.id = u.department_id
LEFT JOIN department dd ON dd.dept_sid = u.old_department_id
SET u.department_id = dd.id
WHERE
    d.dept_sid != u.old_department_id
AND u.old_department_id = dd.dept_sid;

你可能感兴趣的:(mysql用关联表的某个字段值更新目标表某个字段)