MySQL 通过子查询批量插入数据

1 需求

需要将 a 表的数据插入 b 表,其中 a 表的数据很多是冗余的,是原始的多级分类数据,b 表相当于是对 a 表的简化,去掉冗余的数据,两表的 pdm 如下图:
MySQL 通过子查询批量插入数据_第1张图片

2 方法

将 a 表的各级编码、名称无重复的插入 b 表,并设置对应的级别,
通过子查询批量插入无重复数据的SQL如下:

INSERT into category_b (id, name, level) 
  select DISTINCT topCode, top_name, 1 from category_a ORDER BY topCode 

INSERT into category_b (id, name, level) 
  select DISTINCT secCode, sec_name, 2 from category_a ORDER BY topCode 

INSERT into category_b (id, name, level) 
  select DISTINCT thdCode, thd_name, 3 from category_a where thdCode is not null ORDER BY topCode 

你可能感兴趣的:(MySQL,MySQL,子查询,批量插入)