简单问题——这两条sql语句到底有什么区别

nizainade 2007-11-06 11:35:56
有两个表test1和test2,结构都是(id varchar2(10),name varchar2(10)),现在根据两个表的id,用test2的name去更新test1的name,下面这两条sql语句

update test1
set test1.NAME=test2.NAME
where test1.ID=test2.ID

update test1
set test1.NAME=(select test2.NAME from test2
where test1.ID=test2.ID)

在oraedit里执行,第一条总是提示 “无效列名” 的错误,第二条没有错误,请问两个有什么区别,为什么第一个会报错
...全文
87 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Croatia 2007-11-06
  • 打赏
  • 举报
回复
test2?嗬嗬,是什么呢?Oracle没有这么聪明给你分析出来,它是一个表名。

每个语句都有自己的语法标准,不要太想当然了。
ruihuahan 2007-11-06
  • 打赏
  • 举报
回复
第一句就没有引入表名test2
Croatia 2007-11-06
  • 打赏
  • 举报
回复
Oracle网站也有。

http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_10007.htm#i2067715

10G的。
Croatia 2007-11-06
  • 打赏
  • 举报
回复
http://www.csee.umbc.edu/help/oracle8/server.815/a67779/ch4m.htm#12341

这个里面有。
nizainade 2007-11-06
  • 打赏
  • 举报
回复
那update语句按照第一种写法是不对的了? 那么关于语法oracle具体怎么规定的

17,086

社区成员

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

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