Oracle A表更新B表

[复制链接]
查看11 | 回复4 | 2011-3-28 11:38:10 | 显示全部楼层 |阅读模式
我要用A表
a1 a2 a3 a4 B5

1
1 2
2 2

2
3 4
44
B表
B1 B2 B3 B4 B5

1
1 2
2 2

2
3 4
44
用A表的数据更新B表数据 但是要求B5的数据不能有变动 (实际表中A表B5字段名和B表B5字段名一样的,只是值不同)如何更新? 请写出SQL语句并上中文解释 谢谢

回复

使用道具 举报

千问 | 2011-3-28 11:38:10 | 显示全部楼层
既然你说表A和表B中的B5字段是一致的,其实你的意思就是表A和表B是通过B5这个字段来关联的,那么语句可以这样写update B set B1=A.a1,B2=A.a2,B3=A.a3,B4=A.a4 from A where A.B5=B.B5试试吧,我测试过没问题
回复

使用道具 举报

千问 | 2011-3-28 11:38:10 | 显示全部楼层
首先要确定A表和B表可作为关联操作的数据字段,如A表中a1||a2与B表中b1||b2做相符匹配才可如此,可通过存储过程来实现create or replace procedure doupdateasbeginfor a in(select * from a)begin
update b set b.b1=a.a1,b
回复

使用道具 举报

千问 | 2011-3-28 11:38:10 | 显示全部楼层
实现思路就是通过两个表的关联字段,之后将结果更新到另外一个表中:sql:update b set a3=(select a3 from a where a.a1=b.b1 and a.a2=b.b2) 备注:使用上边语句,不存在b表中的a表数据不会被更新。
回复

使用道具 举报

千问 | 2011-3-28 11:38:10 | 显示全部楼层
用A表的数据更新B表数据 但是要求B5的数据不能有变动.哪一个是基准的字段呢?换句话说, 对于 A 表的 a1 a2 a3 a4 B51
1 2
2 2是通过哪一个字段,去匹配 B 表的数据呢?两表关联更新的例子, 不过是 SQL Server 版本的,仅供参考。http://hi.baidu.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行