首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

oracle 多表update,该如何解决

2013-01-11 
oracle 多表updatemt表(receipt,receipttext,messageid)-1-11-1-12dr表(status,statustext,messageid)0suc

oracle 多表update
mt表(receipt,receipttext,messageid)
       -1           -1         1
       -1           -1         2
dr表(status,statustext,messageid)
       0           success      1
根据dr表中的内容,将status,statustext表中内容更新至mt表中的receipt,receipttext,条件messageid相同,(mt表中数据大于dr表中数据)

如上述数据执行update之后,mt表中内容更新为:
mt表(receipt,receipttext,messageid)
       0           success         1
       -1           -1         2

成功执行就给分
[解决办法]
--try
update mt set (receipt,receipttext)=(select status,statustext from dr where mt.messageid=dr.messageid)
where exists(select * from dr where mt.messageid=dr.messageid); 
[解决办法]

不过、效率和这两种差不了多少,甚至还低些呢

热点排行