时间:2021-07-01 10:21:17 帮助过:70人阅读
在一次成绩查询系统的修改中,改动了一张表,在一张表里增加了一个字段,现在需要将另外一个表的对应ID复制过来,由于不经常使用这样的SQL操作,甚至想到了写个循环来处理。但是我又觉得SQL应该可以实现这样的功能,就查了查手册,果然简单,有个update ... from ... 的语法。
相关mysql视频教程推荐:《mysql教程》
例子如下:
表A
id subject_id 1 null 2 null 3 null 4 null 5 null 6 null
表B
sb_id st_id 5 1 2 2 5 3 5 4 2 5 2 6
SQL语句如下:
1 UPDATEASETA.subject_id=B.sb_idFROMBWHEREB.student_id=A.id
更新:上面一条语句只适合在mssql server下面用,在mysql里应该用下面一条:
1 UPDATEA, BSETA.subject_id=B.sb_idWHEREB.student_id=A.id
例子2:
MYSQL是这个
update table2 b,(select b.area_id as arid,sum(a.user_amount) as bcount from table1 a,table2 b where a.user_area=b.area_id group by arid) c set b.count=c.bcount where b.area_id=c.arid;
还专门装了个MYSQL测试了下,测试通过。