背景:

有两张表,一张class信息表,一张student信息表,但student表里的信息存在错误,需要用class表中的信息去更新student表数据。
在这里插入图片描述
在这里插入图片描述


  • 方法一:

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

在这里插入图片描述
【结果】:通过关联字段关联上的数据,内容相应更新;没关联上的,内容变为null



  • 方法二:

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

在这里插入图片描述
【结果】:通过关联字段关联上的数据,内容相应更新;没关联上的,内容不变



  • 方法三(不推荐):

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

【结果】:通过关联字段关联上的数据,内容相应更新;没关联上的,内容变为null
在这里插入图片描述
【注意】:left join这种写法很容易写错,会导致关联左表的信息被更新,right join同理。而join的写法类同方法二,因此结果也与方法二相同。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐