MySQL表关联更新

小灰灰 2023-10-13 20:09 131阅读 0赞

背景:

有两张表,一张class信息表,一张student信息表,但student表里的信息存在错误,需要用class表中的信息去更新student表数据。

在这里插入图片描述

在这里插入图片描述

方法一:

  1. update student_info s
  2. set class_name = (select class_name from class_info where class_id = s.class_id)

【结果】:通过关联字段关联上的数据,内容相应更新;没关联上的,内容变为null。

方法二:

  1. update student_info s, class_info c set s.class_name = c.class_name
  2. where s.class_id = c.class_id

【结果】:通过关联字段关联上的数据,内容相应更新;没关联上的,内容不变。

方法三(不推荐):

  1. update student_info s
  2. left join class_info c on s.class_id = c.class_id
  3. set s.class_name = c.class_name

【结果】:通过关联字段关联上的数据,内容相应更新;没关联上的,内容变为null。

【注意】:left join这种写法很容易写错,会导致关联左表的信息被更新,right join同理。而join的写法类同方法二,因此结果也与方法二相同。

发表评论

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

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

相关阅读

    相关 MySQL关联更新

    背景: 有两张表,一张class信息表,一张student信息表,但student表里的信息存在错误,需要用class表中的信息去更新student表数据。 ![在这里

    相关 mysql主从关联

    mysql主从同步 不锁表 能同步吗? 第一次的时候,锁表和停服务是必须的,否则热备份很容易使数据被破坏。 所以为了以防万一还是需要的。 ![mysql主从表关联\_