因為用戶表和部門表是通過數(shù)據(jù)同步從其他數(shù)據(jù)庫復制過來的數(shù)據(jù),因為系統(tǒng)Bug的原因哨免,某些用戶調(diào)整了部門之后茎活,沒有同步更新到本數(shù)據(jù)庫,這里就導致了當前數(shù)據(jù)庫中的用戶所屬部門還是原來的部門琢唾,系統(tǒng)的bug修復了载荔,但是已經(jīng)更新過的數(shù)據(jù)所屬部門還是錯的,而且因為用戶數(shù)量巨大采桃,從管理系統(tǒng)中也不知道哪些用戶沒有同步部門懒熙,于是就使用sql語句直接更新部門信息。涉及到的用戶表關(guān)聯(lián)部門表普办,然后用部門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;