免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1898 | 回复: 7
打印 上一主题 下一主题

怎么使用update修改另外一个表里的数据? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-08-12 15:37 |只看该作者 |倒序浏览
当表1里字段a的值等于表2里字段c的值时,将表1里字段b的值付给表2的字段d,具体的语法如何写呢? 多谢。我知道下面写的不对

update 2 set 2.d=1.b where 1.a=2.c ?

论坛徽章:
0
2 [报告]
发表于 2003-08-12 20:56 |只看该作者

怎么使用update修改另外一个表里的数据?

just try it!!

论坛徽章:
0
3 [报告]
发表于 2003-08-13 08:41 |只看该作者

怎么使用update修改另外一个表里的数据?

原帖由 "muling" 发表:
当表1里字段a的值等于表2里字段c的值时,将表1里字段b的值付给表2的字段d,具体的语法如何写呢? 多谢。我知道下面写的不对

update 2 set 2.d=1.b where 1.a=2.c ?
   

表1的a和表2的 c 字段必须是唯一的,否则会出现一对多的尴尬,oracle不知道该用哪个值。就象如下语句
select * from t1 where t1.a=(select t2.c form t2 where t2.f='119' )
如果select t2.c form t2 where t2.f='119' 结果集!=1 oracle会报错的

论坛徽章:
0
4 [报告]
发表于 2003-08-13 10:49 |只看该作者

怎么使用update修改另外一个表里的数据?

我觉得你的SQL很标准呀

论坛徽章:
0
5 [报告]
发表于 2003-08-13 11:45 |只看该作者

怎么使用update修改另外一个表里的数据?

据我所知,如果你不用过程好像是没有办法。我也曾经希望这样做,但不行

论坛徽章:
0
6 [报告]
发表于 2003-08-19 10:09 |只看该作者

怎么使用update修改另外一个表里的数据?

感谢大家的支持,我已经解决了,的确使用过程来实现的
create procedure tt is
cusor r1 is select  a,b form table1;
begin
rc in r1 loop
update table2 set d=rc.b where c=rc.a;
end loop;
commit;
end tt

论坛徽章:
0
7 [报告]
发表于 2003-08-19 10:18 |只看该作者

怎么使用update修改另外一个表里的数据?

[quote]原帖由 "blackuhlan"]据我所知,如果你不用过程好像是没有办法。我也曾经希望这样做,但不行[/quote 发表:
     
不用过程完全可以!!!
update t1 set a=(select max(t2.d) from t2 where t2.c=t1.b)

论坛徽章:
0
8 [报告]
发表于 2003-08-19 10:31 |只看该作者

怎么使用update修改另外一个表里的数据?

原帖由 "rollingpig" 发表:
   
不用过程完全可以!!!
update t1 set a=(select max(t2.d) from t2 where t2.c=t1.b)
   

实际上,我是希望将a表的a字段赋为不同的值,你这样被赋为了同一个值,有什么用呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP