Table : sysdata & bankdata两张表的结构都是: 卡号 金额 状态xxxx 0.00 0yyyy 0.00 0zzzz 0.00 0问题来了,现在要把两张表中,卡号和金额相同的条目的状态改为1。两张表的状态都要改!重点在于,相同卡号和金额的记录数sysdata中可能有两三条,但bankdata中可能有七八条。而我的需求就是不管哪张表的记录数多,我要求两张表里相同条件的记录要一对一。也就是说,sysdata 有三条,bankdata有十条,我的结果只要更新三条,同样bankdata有一条sysdata有一百条,我也只要更新一条。注意,表中卡号并非只有一个,所以rownum行不通!请数据库的高手们指教一下吧!万分感谢啦!其实如何做到我那个逻辑我还是弄不太懂.怎样做到我说的那样,只选择一对一的出来?我搞了N久都不行.有人说rownum可以,我试了,只能选出一条.这不是我要的结果,我要的是一条条的对应,不是只对应第一条.我用的是Oracle 9i
明确告诉你“UPDATE”命令本身不能同时修改多表; 教科书上UPDATE命令格式如下: “update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式” 当然可通过很多总方法达到UPDATE多张表的效果,而不是单纯依靠UPDATE命令本身,如: 1、将多个UPDATE用“;”号隔开来执行; 2、通过过程、包实现; 3、通过触发器来实现; 4、通过建立关联; 5、通过外部调用等;
可以实现,只是不太明白你的业务需求。已理解:1、sysdata、bankdata 两张数据表中 都有结构相同字段:卡号、金额、状态;2、两张表中,卡号、金额都分别一样的要更改字段状态;3、更改状态数量是根据bankdata、sysdata哪个记录少的那个记录数。不理解:1、更改一张表还是两张都要改;2、如果sysdata 有三条,bankdata有十条,更新三条(哪个表的三条?)3、如果两张都要改,bankdata有十条(要改哪三条?)