1.两个表某个字段一对一情况下
前提条件:
表info_user中有字段id和name,字段id为索引
表data_user_info中有字段id和name,字段id为索引
其中表info_user中字段id和表data_user_info中字段id数值一致。
要求实现:
更新表info_user中的字段name 与表data_user_info中字段name一致。
实现的SQL语句为:
update info_user i set (i.name) = (select d.name from data_user_info d where d.id = i.id)
where i.id = (select d.id from data_user_info d where d.id = i.id);
commit;
2.两个表某个字段一对多的情况下
一对多表字段更新SQL语句
表T_A www.2cto.com
id
name
1
张三
2
李斯
表T_B
id
name
1
zhangs
1
zsan
1
zs
2
lisi
2
ls
www.2cto.com
目的:将T_B表中id与T_A表id对应的记录的name,修改成与T_A表中的name一致。
如下:
id
name
1
张三
1
张三
1
张三
2
李斯
2
李斯
执行SQL:
UPDATE T_B SET (NAME, ID) = (SELECT NAME, ID FROM (SELECT T_B.ROWID RD, T_A.NAME, T_A.ID FROM T_A, T_B WHERE T_A.ID = T_B.ID) TMP WHERE T_B.ROWID = TMP.RD);