之前遇到一个业务场景,大概描述一下!
一个加分规则配置表tik_bonus_points,里面配置了一些特殊人员的加分规则,以及一些部门的特殊加分规则。
我的任务是按照该配置表的配置,将加分规则计算出来的分值更新到系统的tik_user库中。由于该配置表中的用户唯一标识是来自钉钉的Id,并非是我们系统的user_id。所以需要从权限的tc_allusers表中查出用户的我们系统的Id,在进行更新。
按照以往的习惯,这有些复杂的业务肯定是放在了service层中写了,但是这次想提高一下sql能力。
数据来自多张表,肯定要用到连接查询,所以就有了一下的SQL
UPDATE tik_user c
INNER JOIN (
SELECT
e.weight,
e.integral,
e.reduction_auth,
d.id