Mysql+Demo 将一张表的数据更新到另外一张表中

文章讨论了在MySQL中更新数据时的三种常见方法,包括直接联接更新、子查询更新以及使用JOIN。方式一为标准的联接更新,方式二和三涉及子查询和JOIN,但可能在处理大量数据时效率较低。对于数据量大的情况,方式一通常更为高效。
摘要由CSDN通过智能技术生成

在使用Mysql开发应用时,难免会有根据一张表(tableA)中的某字段来把数据更新到另一张表(tableB)的操作

需要更新的表: myw_table_a a

查询数据的表: myw_table_b b

方式一(最常用)

update 
    myw_table_a a, myw_table_b b 
set 
    a.name = b.nick_name, a.phone = b.nick_phone 
where 
    a.id = b.id

方式二(不建议用,仅仅只是更新一个字段数据都有点慢,b表对a表还是一对多关系)

update 
    myw_table_a a 
set 
    a.name = (select nick_name from myw_table_b b where a.od = b.id)

// 多字段
update 
    myw_table_a a 
set 
    a.name = (select nick_name from myw_table_b b where a.od = b.id),
    a.phone = (select nick_phone from myw_table_b b where a.id = b.id)

方式三(能用,数据量大了就比较慢,比方式二要逊色一些)

update 
    myw_table_a a join myw_table_b b on a.id=b.id
set
    a.name = b.nick_name,
    a.phone = b.nick_phone

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值