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表 :
还没有评论,来说两句吧...