如果update一個表的字段時,該字段的值需要從另一個表中select來時,此時需要連表更新,mysql的語法如下:
update oss_system_user a inner join (select id, refGroupId from oss_system_department) b on a.department = b.id set a.departmentGroupId = b.refGroupId;
常規思維這樣寫是不正確的:
update oss_system_user t set t.departmentGroupId = (select b.refGroupId from oss_system_user a join oss_system_department b on a.department = b.id where a.loginId = 'admin') where t.loginId = 'admin';