mysql 两个关联表如何更新其中一个表的数据

今天遇到一个客户的数据更新问题,两个相关联的表,一个主表用于保存单据主要信息,一个副表用于保存单据的明细信息;现在要把主表的其中一个字段的数据更新到副表的一个字段中保存。

假设:
A表是主表,有单号order_id、开单人operator、开单日期oper_date、备注memo等;
B表是副表,有单号order_id、序号id、商品编码code、商品名称name、备注memo等。
A表的备注是有数据的,B表的备注没有数据,现在要把A表的数据更新到B表,并且B表有数据的不能更新了。A表与B表是以单号来关联的。
更新数据的SQL语法如下:

update B,A set B.memo=A.memo
where A.order_id=B.order_id and (B.memo is null or B.memo='');

 

create table A
(
    order_id int not null auto_increment,
    operator varchar(50),
    oper_date date,
    memo varchar(50),
    primary key(order_id)
);

create table B
(
    order_id int not null auto_increment,
    good_id int,
    good_code int,
    good_name varchar(50),
    memo varchar(50),
    primary key (order_id)
);

insert into A values 
(1,'onion2',now(),'测试1'),
(2,'onion2',now(),'测试2'),
(3,'onion3',now(),'测试3');

insert into B values
(1,1,0001,'good1','已经备注');

insert into B (order_id,good_id,good_code,good_name) values 
(2,2,0002,'good2'),
(3,3,0003,'good3');

update B,A set B.memo=A.memo
where A.order_id=B.order_id and (B.memo is null or B.memo='');

 

 

转载于:https://www.cnblogs.com/huangcongcong/p/4004296.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值