现在Oracle里有两个表,一个新表A,另一个旧表B;现在在新表A中需要新增一个属性,这个字段是B表中的ID号,A表和B表可以通过属性进行连接。
我的问题是怎么把B表的ID号对应的update过来呢?
我的问题是怎么把B表的ID号对应的update过来呢?
解决方案 »
- 【求助】oracle 11g Flashback data archive支持带blob字段的表吗??
- Oracle在使用sys/change_on_install登录到sqlplus,浏览器em中登录不进去()
- 求助一条sql
- 本人想用命令把一个表导出为.sql的形式如下:命令怎写呀
- oracle连接asp.net 问题
- oracle两个表关联字段都要建立索引吗?
- 存储过程中,sql优化.........
- 如果ORACLE数据库彻底不能启动,数据存在D盘,能否通过重装ORACLE来回复数据?
- 奇怪问题?
- oracle数据库图形化工具sqldeveloper的怎么配置智能提示
- oracle 数据导入如何只导入新增数据??
- Oracle for windows PK Oracle for unix
请描述清楚
set site_ID = ( select ID from web_site)
where web_data_temp.postalcode in (select postalcode from web_site)但是这样写不对的,大家能明白我的意思吗?
set site_id = (select id from web_site b where a.postalcode = b.postalcode)
where exists (select null from web_site b where a.postalcode = b.postalcode)前提必须保证POSTALCODE关联查出只能一个值
set a.id=(select b.id from tableB b where a.keyid=b.keyid)orupdate(select a,id,b.id from tablea a,tableb b where a.keyid=b.keyid) set a.id=b.id
SELECT id, postalcode FROM web_site GROUP BY id, postalcode
/UPDATE web_data_temp a
SET site_id = (SELECT id FROM TMP_WEB_SITE b WHERE a.postalcode = b.postalcode)
/DROP TABLE TMP_WEB_SITE
/
注意上面的UPDATE中,如果根据postalcode找不到id的话,那么会把site_id置为NULL
UPDATE web_data_temp a
SET site_id = (SELECT id FROM TMP_WEB_SITE b WHERE a.postalcode = b.postalcode)
这样的情况,因为子查询肯定查出不止一个值,所以无法执行的,我反复试过这样的SQL语句了,有些大虾说可以通过循环来解决,但是我对Oracle又不熟悉,所以不知道怎么写比较妥当,麻烦各位告诉在下一声,感激不尽!
大家已经把语句写出来了,我想楼主应该仔细分析一下你这两个表的连接条件没写充分,造成不能一一对应.
剩下的应该是分析两个表的结构了.