MySQL三表聯查然後在根據查詢結果更新其中的表

2021-10-24 01:40:54 字數 1058 閱讀 1270

之前遇到乙個業務場景,大概描述一下!

乙個加分規則配置表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

from

tik_user d

right

join

(select

a.`name`

, a.integral,

a.weight,

a.reduction_auth,

b.id as user_id

from

tik_bonus_points a

left

join tc_allusers b on a.id = b.ding_id

where

a.type=1

and a.is_delete =

0and b.is_delete =

0) e on d.id = e.user_id

) f on c.id = f.id

set c.giving_weight = f.weight,

c.giving_integral=f.integral,

c.is_permit_minus=f.reduction_auth

where c.is_delete=

0

mysql根據查詢條件更新資料表

menu templateitem表資料更新 插入郵箱伺服器的修改列929 insert ignore into menu templateitem menu template,menu id select menu template,929 from menu templateitem where...

mysql 左 右 內連線及三表聯查

a站在b的左邊 b站在a的右邊 a left join b b right join a 如何記憶 1左右連線可以相互轉化 2把右連線轉換成左連線來使用 推薦左連線,相容性好一些 左連線 以左表為準,去右表找匹配資料,找不到匹配,用null補齊 表1.表2.代表取出兩張表的所有列 select 表1...

MySQL兩表聯查,根據不同條件獲得不同資料

查詢語句 select distinct ifnull select sum 列名 from a,b where a.id b.id and a.condition condition1 and b.condition condition2 0 as 條件1下的資料 ifnull select su...