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

野性酷女 2023-09-25 17:51 109阅读 0赞

场景举例

现在有两张表 :

A 表 son 儿表

  1. CREATE TABLE `son` (
  2. `id` INT(11) NULL DEFAULT NULL,
  3. `name` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
  4. `age` INT(11) NULL DEFAULT NULL,
  5. `contact_phone` VARCHAR(50) NULL DEFAULT NULL COMMENT '联系电话' COLLATE 'utf8_general_ci',
  6. `same_phone` INT(11) NULL DEFAULT NULL COMMENT '0: 不一致 1:一致'
  7. )
  8. COLLATE='utf8_general_ci'
  9. ENGINE=InnoDB
  10. ;

B表 pater 爸表

  1. CREATE TABLE `pater` (
  2. `id` INT(11) NULL DEFAULT NULL,
  3. `name` VARCHAR(50) NULL DEFAULT NULL COMMENT '姓名' COLLATE 'utf8_general_ci',
  4. `phone` VARCHAR(50) NULL DEFAULT NULL COMMENT '手机号' COLLATE 'utf8_general_ci',
  5. `son_id` INT(11) NULL DEFAULT NULL COMMENT '儿名'
  6. )
  7. COLLATE='utf8_general_ci'
  8. ENGINE=InnoDB
  9. ;

儿表 爸表 通过 爸表的 son_id 关联 1对1 ;

现在儿表 里面有个联系电话 , 爸表里面有 手机号字段 ;

然后儿表里面有个 字段标识, same_phone ,为1 代表 他的联系电话 就用他爸 的手机号 ;

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

看看例子数据:

儿表 son 表 数据:

5e68128778174271ab82b2c0bae5f5c5.png

爸表 pater表 数据:

f9084c71933344f18142c8edb5a0b837.png

想要实现的效果:

4b16378df6bf4ae5b974083b0a203360.png

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

更新SQL:

  1. UPDATE son
  2. SET son.contact_phone =(
  3. SELECT pater.phone
  4. FROM pater
  5. WHERE pater.son_id = son.id
  6. )
  7. WHERE son.same_phone=1

sql 简析:

3d817cd8ffbc46fb81fa3a7c9fc822be.png

效果:

son 表 :

06ea23bb0eb4438dbe84f0ca0d2436a0.png

pater表 :

415c5b51e5bc4e0b9243566480753c25.png

发表评论

表情:
评论列表 (有 0 条评论,109人围观)

还没有评论,来说两句吧...

相关阅读