oracle update两个表的时候,到底怎么用的

jieguo 2008-07-02 03:36:14
update操作发生在两个表的时候,比如要把K2.d001赋给k1.d001,在三个条件相等的情况下:
Access中可以写
UPDATE Kbgb AS k1, kbgb02 AS k2 SET k1.d001 = k2.d001
WHERE k1.kdlh=k2.kdlh And k1.xyear=k2.xyear And k1.xcode=k2.xcode {支持别名}

sqlserver中需要这样写,
update Kbgb04 set kbgb04.d001=kbgb.d001
from kbgb WHERE (kbgb04.kdlh=kbgb.kdlh) and (kbgb04.xyear=kbgb.xyear) and (kbgb04.xcode=kbgb.xcode)

但在oracle中要怎么写呢:
...全文
625 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hebo2005 2008-07-02
  • 打赏
  • 举报
回复

UPDATE kbgb k1
SET k1.d001 =
(SELECT k2.d001
FROM kbgb02 k2
WHERE k1.kdlh = k2.kdlh
AND k1.xyear = k2.xyear
AND k1.xcode = k2.xcode)
WHERE EXISTS (
SELECT 1
FROM kbgb02 k2
WHERE k1.kdlh = k2.kdlh
AND k1.xyear = k2.xyear
AND k1.xcode = k2.xcode)
hebo2005 2008-07-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ojuju10 的回复:]

update Kbgb04 set kbgb04.d001=kbgb.d001
from kbgb,Kbgb04 WHERE (kbgb04.kdlh=kbgb.kdlh) and (kbgb04.xyear=kbgb.xyear) and (kbgb04.xcode=kbgb.xcode)
[/Quote]
你去试试看行不行再贴上来好吧
oracle 里的update没有from的
阿三 2008-07-02
  • 打赏
  • 举报
回复
update a set a.col1=(select b.col2 from b where a.col3=b.col3)
where a.col3 in (select b.col3 from b)
这里要加一个限制条件,否则更新表a会把不符合条件的也更新了
ojuju10 2008-07-02
  • 打赏
  • 举报
回复

update Kbgb04 set kbgb04.d001=kbgb.d001
from kbgb,Kbgb04 WHERE (kbgb04.kdlh=kbgb.kdlh) and (kbgb04.xyear=kbgb.xyear) and (kbgb04.xcode=kbgb.xcode)

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧