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

场景举例 


现在有两张表 :

  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表 :
 

猜你喜欢

转载自blog.csdn.net/qq_35387940/article/details/129681190