Oracle数据库,关于关联两张表更新问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle数据库,关于关联两张表更新问题相关的知识,希望对你有一定的参考价值。

如有主表A,子表B,当主表A对应的子表B数据条数不为0,并且,所有子表B的数据中某字段(如status)都为30时,则更新主表A的status字段为30.。非常感谢

两表关联更新用如下方法。

有以下两张表:

根据test2表中的id和test1表中的id关联,修改test1表中name字段,语句如下:

update test1 a set a.name=(select b.name from test2 b where a.id=b.id) where a.id in (select id from test2);

更新后,test1表中结果:

参考技术A --因为没有给出a、b两个表的关联,所以用a.id和b.aid做了关联
update a aa set status=30
where
(select count(status) from b where a.id=b.aid)>0 --确定b表有A表子数据
and
(select count(status) from b where a.id=b.aid and b.status<>30)=0--b表子数据status<>30个数=0个,说明子数据status全部为30本回答被提问者采纳

关于oracle 多表关联更新的问题

有三张表:A表/B表/C表,其中A表与B表是数据库中原有的,C表是新导入进oracle中的,
A表中有a000(唯一标识号),a002(姓名),a008(身份证号)
B表中有a000(唯一标识号),--现在想要更新的数据列为a079??
C表中有卡号(导入新表后取列名为kh),姓名(导入新表后取列名为name),身份证号(导入新表后取列名为zjhm)我现在是想把C表中的‘卡号’(kh)这一列更新到B表中的a079列,如何导入?
---------------提示----------
现在问题是B表中没有身份证号码和姓名,只能通过A表与B表关联后作为一张大的表,然后再关联C表中的姓名和证件号码来更新到B表中的a079列。
---------考虑的问题----
A表中可能有重复的身份证号码或者姓名
(1)如果A表中有重复的身份证号码,可以用去重的方法来踢掉,
(2)A表中重复的姓名怎么办? 请写出一个语句来查一下A表中重复的姓名有多少。
--------------------------------------------------本人是新手,请针对问题予以回答-----------------------------------

不用这么复杂

C表根据身份证号直接关联到A表,查询出所有的a000,然后直接根据这个去update B表中的数据
参考技术A 身份证唯一就行,姓名重复是无法避免的
select count(*) from (select name from a group by name having count(name)>=2)本回答被提问者采纳

以上是关于Oracle数据库,关于关联两张表更新问题的主要内容,如果未能解决你的问题,请参考以下文章

Oracle两张表关联批量更新其中一张表的数据

Oracle两张表关联批量更新其中一张表的数据

oracle 想把三张表关联起来,怎么关联?

Oracle两张表关联中间表查询,那张关联到数据就显示,关联不到就负空值

MYSQL中两张表,怎么使用关联查询?

在Oracle-sql中比较两张表并更新一张表