这样的update语句,为何在Access可以执行,oracle里面却错,错在哪里?

gigilee 2006-01-30 04:32:14
三张表,
UPDATE T1,
(SELECT T2.F1, T2.F2, T2.F3, T2.F4, T3.id FROM T2,T3 where T2.name = T3.name) AS TableA
SET T1.id = SELECT id FROM TableA
WHERE T1.F1=Talbe.F1
AND T1.F2=Talbe.F2
AND T1.F3=Talbe.F3
AND T1.F4=Talbe.F4

如何改呢?
...全文
145 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
gigilee 2006-02-03
  • 打赏
  • 举报
回复
搞定,
AS 不要
gigilee 2006-02-03
  • 打赏
  • 举报
回复
错误信息就是
缺少右面括号
zealot_zk 2006-02-02
  • 打赏
  • 举报
回复
在什么地方报的错啊?把报的错误贴出来看看
gigilee 2006-02-02
  • 打赏
  • 举报
回复
二楼的那段,好像有错误吧
我执行过了缺少括号,不过我数过没缺
gigilee 2006-02-02
  • 打赏
  • 举报
回复
那样的写法不是更新2张表,是有key在2张表里
gigilee 2006-02-02
  • 打赏
  • 举报
回复
知道语法不对,只是想说实现这样的更新,到了oracle里面怎么改好?
这样的写法在access里面可以实现,实现那样的功能,在oracle里面难道不可以?
baojianjun 2006-02-02
  • 打赏
  • 举报
回复
樓主主要要先ORACLE的UPDATE語法,再來討論這個問題比較號
zealot_zk 2006-02-02
  • 打赏
  • 举报
回复
oracle在使用update语句时只能修改一张表里的内容,所以update 子句后只能有一个表名,所以这条语句显然不对。

应该为如下形式:
UPDATE T1
SET T1.id =
(
SELECT TableA.id
FROM (SELECT T2.F1, T2.F2, T2.F3, T2.F4, T3.id FROM T2,T3 where T2.name = T3.name) AS TableA
WHERE T1.F1=TableA.F1
AND T1.F2=TableA.F2
AND T1.F3=TableA.F3
AND T1.F4=TableA.F4
)

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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