update b set memo=(select max(a.name) from a where a.id=b.id)
where exists(select 1 from from a where a.id=b.id);
where exists(select 1 from from a where a.id=b.id);
解决方案 »
- 求高手解决怎么实现数据库里面数据关联?DBA求进。
- oracle:在触发器中,如何获得自增id的值,并实现更新数据!
- 小提示 如何定位一个数据库表在物理上的存储位置
- 新手问题
- 为何我在Win2000Server上安装ORACLE9I的时候不能安装,点SETUP后一直没有反映
- 使用Oracle数据库,做分页,需要对数据库做什么操作?
- 谁有 Oracle的下载地址?
- 数据库恢复正常
- 关于blob列的全文检索问题
- ORA-01401: inserted value too large for column請求幫助
- 怎样用动态SQL实现 UPDATE
- 能不能将EXCEL或者ACCESS的一列数据导入ORACLE的某一列?
exists(select 1 from from a where a.id=b.id)
这个1是什么意思?我要把b表中所有记录都更新了。
谢谢!!
是这样吗?
直接这么写是错误的,导致的结果是,如果a表中找不到对应的b表id ,那么你将犯下致命错误,那就是A表中如果无B表中对应的ID,那么所有的b表中MEMO将被设置成空,这是你需要的吗?所以必须加上
where exists (select 2 from a where a.id=b.id ) (意思是只更新在A表中存在的数据) SELECT 1, SELECT 2 FROM ......是1还有2无所谓,只是随便找个结果看交集有结果没有而已,你自己随便写3都可以