SQL优化之数据复用操作

前言:周末加班身心倦,枯心无意博客编,昨天誓言日一篇,今朝抽空把坑填

正文: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优化之数据复用操作,完结撒花

✿✿✿ヽ(°▽°)ノ✿✿✿ヽ(°▽°)ノ✿✿✿ヽ(°▽°)ノ✿✿✿ヽ(°▽°)ノ✿✿✿

你可能感兴趣的:(JDD)