更新一个表中的数据来源于另一个表中数据,如何写? update table1 set name=(select from table2 where table1.id=table2.id) where exists (select 1 from table2 where table1.id=table2.id); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 to :ORARichard(没钱的日子好难过啊) 非常感谢你的答复,果然高人.但是我有一点不明白的是: select 1 from table2 where table1.id=table2.id 这句是个什么用法呀? 不是很理解,为什么select 后边是个1,如果改为2又代表什么呢? 谢谢:) 1是逻辑值,其实只判断真假值,一般你写成exists (select * from table2 where table1.id=table2.id);就可以了 可以找一写资料看看,就是关于select语句的,安装一个第三方的数据库软件,可以方便地调用oracle数据库,可以对各种select语句进行测试,多用几次就知道是什么意思了。 哦,谢谢楼上的,偶明白了,select测试到是可以,问题是根本想不出来那种写法,自然测试就谈不上的啦.不过我相信过一阶段我就不会再问这么低级的问题啦. 哈哈,天天快乐:) 也可以这样update (select ID,Mark from table1) a,(select ID,Name from table1) bset a.Mark=b.Namewhere a.ID=b.ID to :luhualing(卢华令) 你的那种写法我试过了.报错哦.说SQL语句错误. 关于Oracle执行批量建表脚本的问题 informaker连接oracle数据库时候报错:ora-00942:table or view does not exist 请教oracle过程实现金额转换 如何在多表查询的结果集中找出重复的列名 sequence cache对于性能影响大么? 在oracle存储过程中使用alter命令的问题! 大虾救命,基础中的基础 两表滤重问题 請問 如何判斷一橍數據有空? 怎样复制用户所有对象 求教“无法分配 4096 字节的共享内存”问题出现后增加共享池的大小后仍然出现该问题? oracle数据库密码突然失效,如何找回呀?急!十分感谢!
to :ORARichard(没钱的日子好难过啊) 非常感谢你的答复,果然高人.但是我有一点不明白的是:
select 1 from table2 where table1.id=table2.id 这句是个什么用法呀?
不是很理解,为什么select 后边是个1,如果改为2又代表什么呢?
谢谢:)
哦,谢谢楼上的,偶明白了,select测试到是可以,问题是根本想不出来那种写法,自然测试就谈不上的啦.不过我相信过一阶段我就不会再问这么低级的问题啦.
哈哈,天天快乐:)
update (select ID,Mark from table1) a,(select ID,Name from table1) b
set a.Mark=b.Name
where a.ID=b.ID
to :luhualing(卢华令)
你的那种写法我试过了.报错哦.说SQL语句错误.