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;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容