0


多表关联进行update更新数据

在平常的工作中,我们经常会更新表的数据。常见的表关联更新数据例如用where条件进行表关联,或者用join进行表的连接更新表的数据。

1:创建测试表:

CREATE TABLE `student` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
  `student_no` bigint NOT NULL COMMENT '学号',
  `name` varchar(20) DEFAULT NULL COMMENT '名字',
  `address` varchar(100) DEFAULT NULL COMMENT '地址',
  PRIMARY KEY (`id`),
  KEY `student_no` (`student_no`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

CREATE TABLE `student_info` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
  `student_no` bigint NOT NULL COMMENT '学号',
  `hobbies` varchar(200) DEFAULT NULL COMMENT '兴趣爱好',
  KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

2:将名字为“阿杜”同学的兴趣爱好改为跳舞:

通过where条件连接:

update student_info sto,student st 
set sto.hobbies = '跳舞'
where sto.student_no = st.student_no 
and st.name = '阿杜';

通过join连接:

update student_info sto inner join student st
on  sto.student_no = st.student_no 
and st.name = '阿杜'
set sto.hobbies = '跳舞';

3:如果表数据量比较大,可以查询需要关联的字段,这样可以提高效率,如:

update student_info sto inner join 
(select student_no,name from student ss) st
on  sto.student_no = st.student_no 
and st.name = '阿杜'
set sto.hobbies = '跳舞';

4:单表进行更新数据:

update student
set address = '陕西宝鸡'
where name = '阿杜';

温故而知新。加油,美好的风景一直在路上!

标签: sql 数据库

本文转载自: https://blog.csdn.net/qq_36833673/article/details/129656053
版权归原作者 忘忧人生 所有, 如有侵权,请联系我们删除。

“多表关联进行update更新数据”的评论:

还没有评论