前言:週末加班身心倦,枯心無意博客編,昨天誓言日一篇,今朝抽空把坑填
正文:OK,廢話不多說,先讓博主講一哈業務場景
我將可愛美麗的產品經理提出的需求,概括之爲同數據庫中把一張A表中數據複用到另一張B表,並根據C表的某些字段來確定B表的某些字段值
實際上,這個功能有多種實現方式,比較容易想到的是第一步批量複用,第二步獲得B表全集並左連接C表來批量更新B的某些字段值,通過兩次批量操作效率的確是比單條操作效率要高出幾何倍。但是,效率更高的當然還是一條SQL就可以完成複用+確定字段值的方式。
批量複用SQL,這個相信大家都知道
insert into B表( B1,B2,B3) select B1,B2,B3 from A表
一條SQL完成複用+確定字段值
insert into B(B1,B2,B3,B4,B5,B6) select t1.B1 as B1, t1.B2 as B2, t1.B3 as B3, t1.B4 as B4, (case when t2.XX2 = 0 then '0' when t2.XX2 = 1 then '1' else '1' end) as B5, (case when t2.XX3 = t1.XX3 then '0' when t2.XX3 != t1.XX3 then '1' else '0' end) as B6 from A t1 LEFT JOIN B t2 on t2.XX1 = t1.XX1
OK,SQL優化之數據複用操作,完結撒花
✿✿✿ヽ(°▽°)ノ✿✿✿ヽ(°▽°)ノ✿✿✿ヽ(°▽°)ノ✿✿✿ヽ(°▽°)ノ✿✿✿