UPDATE语句:将一个表里的字段更新到另一个表的字段里的语句

在一次成绩查询系统的修改中,改动了一张表,在一张表里增加了一个字段,现在需要将另外一个表的对应ID复制过来,由于不经常使用这样的SQL操作,甚至想到了写个循环来处理。但是我又觉得SQL应该可以实现这样的功能,就查了查手册,果然简单,有个update ... from ... 的语法。例子如下:

表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
 
(来源: http://www.600mhz.net/sql/update_field_from_another_table.html)
 
 
 
例子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测试了下,测试通过。
 
 

你可能感兴趣的:(UPDATE语句:将一个表里的字段更新到另一个表的字段里的语句)