Mysql 将一个表的某个字段的值 更新到 另外一个表的 某个字段的值

文章描述了一个数据库操作场景,涉及两个表——son表和pater表,它们通过son_id字段实现1对1关联。son表有一个same_phone字段,当其值为1时,表示儿子的联系电话使用父亲的手机号。任务是更新那些same_phone为1的son表记录,将对应pater表中的手机号复制到contact_phone字段。为此,提供了一个SQL更新语句来实现这一操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

场景举例 


现在有两张表 :

  A 表 son 儿表   

CREATE TABLE `son` (
	`id` INT(11) NULL DEFAULT NULL,
	`name` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
	`age` INT(11) NULL DEFAULT NULL,
	`contact_phone` VARCHAR(50) NULL DEFAULT NULL COMMENT '联系电话' COLLATE 'utf8_general_ci',
	`same_phone` INT(11) NULL DEFAULT NULL COMMENT '0: 不一致  1:一致'
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB
;


   B表  pater 爸表

CREATE TABLE `pater` (
	`id` INT(11) NULL DEFAULT NULL,
	`name` VARCHAR(50) NULL DEFAULT NULL COMMENT '姓名' COLLATE 'utf8_general_ci',
	`phone` VARCHAR(50) NULL DEFAULT NULL COMMENT '手机号' COLLATE 'utf8_general_ci',
	`son_id` INT(11) NULL DEFAULT NULL COMMENT '儿名'
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB
;

    儿表 爸表 通过 爸表的 son_id 关联  1对1 ;
    
    现在儿表 里面有个联系电话 ,  爸表里面有 手机号字段 ;
    
    然后儿表里面有个 字段标识, same_phone ,为1 代表 他的联系电话  就用他爸 的手机号 ;
    
    我们需要 把符合条件的 爸表 的手机号数据 ,更新(刷)到 儿表 的联系电话字段 去 。

看看例子数据:

儿表  son 表 数据:

 爸表 pater表 数据:

想要实现的效果:

    我们需要 把符合条件的 爸表 的手机号数据 ,更新(刷)到 儿表 的联系电话字段 去:

更新SQL:
 

UPDATE son 


SET son.contact_phone =(


SELECT pater.phone
FROM pater
WHERE pater.son_id = son.id


)


WHERE son.same_phone=1

sql 简析:

效果:

son 表 :

pater表 :
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小目标青年

对你有帮助的话,谢谢你的打赏。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值