mysql取出另外一张表的数据_mysql从一张表中取出数据插入到另一张表

最近有这样一个需求,原来的订单表wp_order设计不合理,原来的订单表没有订单详表,只有一张主表。现在是要重构订单表,分为订单主表wp_order_master和订单详表wp_order_detail,需要把原来的wp_order中的数据拆分后插入这两张表。

我这里总结有3种mysql插入语句方式,分别是:

以下表1为目标表,表2为原表

表结构一样

insert into 表1select * from 表2

这个方式说白了就跟复制一样,要求2张表的所有字段一致,否则报错。

表结构不一样

insert into 表1 (列名1,列名2,列名3) select 列1,列2,列3 from 表2

这种也不能说是表结构不一样,其实就是有选择性的从表2取出数据对应表1字段插入。

只从另外一个表取部分字段

insert into 表1 (列名1,列名2,列名3) values(列1,列2,(select 列3 from 表2));

这种方式适用的情况是,在从表2取出部分字段数据的同时,表1有新的字段也需要数据,相当于第2种方式的升级版。

我这里采用第2种方式:

INSERT INTO wp_order_master (id,order_number,order_code,uid,cTime,pay_time,total_price,is_pay,

alipay_price,wechat_price,balance_price,cash_price,union_price,active_id,active_price,coupon_id,coupon_price,

integral_num,integral_price,erase_price,use_packet_id,order_from) SELECT id,order_number,order_code,uid,cTime,pay_time,total_price,is_pay,

alipay_price,wechat_price,balance_price,cash_price,union_price,active_id,active_price,coupon_id,coupon_price,

integral_num,integral_price,erase_price,use_packet_id,order_from FROM wp_order WHERE id BETWEEN 10 AND 20;

里面因为测试,select的where后面加了条件。

这里也把原order表的id插入了order_master,作为主键更新order_detail表。

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值