mysql语句update之联合更新

        最近遇到一个小问题,数据库方面的,两张表有主外键关系,其中一个表添加一个字段,在另一个表中是有值的,并把这个字段同步更新到这张表中,说起来有点绕,还是看具体案例吧。

学生表(student)

                  

班级表(class)

           

          由以上两张表可知,一个班级对应多个学生,所以将班级表的主键作为学生表的外键 。

          现在的需求是在学生表中新增一个class_name的字段,用来标明每个学生所属的班级,如下:

               

那么现在的任务是,在student中将class_name这个字段相应的填充上去,比方说:张三和李四的class_id=1,他的班级是一班,王五的class_id=2,他的班级是二班,赵六的class_id=3,他对应的班级应该是三班。这样一一对应起来,如果一个一个填充上去的话,数据量达到几千上万级别,还不累死,那么这就涉及到了update语句的联合更新。直接发sql吧:

#第一种方式
UPDATE class AS c
INNER JOIN student AS s
ON c.id = s.class_id
SET s.class_name = c.name;

#第二种方式
UPDATE class AS c,student AS s
SET s.class_name = c.name
WHERE c.id = s.class_id;

以上两种方式都可以达到同样的效果。

 

               

                                                                                                                                                                                     

                                                                                                                                                                                   

                                                                                                                                                                                                                                                                                                                                                    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值