oracle数据库。 一张表的一个列update到另外一张表的一个列,语法怎么写,麻烦写清楚点,带上解释谢谢
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle数据库。 一张表的一个列update到另外一张表的一个列,语法怎么写,麻烦写清楚点,带上解释谢谢相关的知识,希望对你有一定的参考价值。
你说的是关联更新,不多说,上示例:update 表A a set a.userName=(select b.userName from 表B b where b.userID=a.userID where rownum=1) where existe (select 1 from 表B c where c.userID=a.userID )
语句就是如此,作用是根据表B的用户名跟新表A的用户名,管理按条件是 两个表的用户ID相同,根据你的需求换下表名和字段名就可以了。追问
where existe (select 1 from 表B c where c.userID=a.userID )
请问这个是什么意思呢?
这个是为了确保只有两个表的userID相同才更新,虽然不加这一句有时候结果也正确,但有时候结果不正确,加了肯定是错不了的,经过我的多次验证了,至于楼下提到的为什么要“where rownum=1”这个条件,是为了确保子查询中只返回一个结果,因为有可能表B中存在多条userID相同的情况,此时如果没有这个条件查询是回报错的,总之,这个语句已经将各种情况都考虑到了,大胆的用即可,如果还有疑问,请继续追问。
追问where existe (select 1 from 表B c where c.userID=a.userID )
select那说 缺失表达式 这咋整?
不好意思, existe 拼写错误,正确应该为 exists ,请替换后重试
参考技术A 实现你的要求,首先要保证两表有唯一的关联性,语句如下:update b set XX列=(select XX列 from a where a.唯一字段 = b.唯一字关联字段) 参考技术B update tableA set columnC=(select columnB from tableB b where b.columnA=tableA.columnA);
把一张表中某列数据更新到另一张表的某列
mysql 更新
UPDATE table1 r,table2 m set r.列 = m.列 where r.条件 = m.条件;
oracle 更新
UPDATE table1 r set r.列 = (SELECT m.列 from table2 m where r.条件 = m.条件);
以上是关于oracle数据库。 一张表的一个列update到另外一张表的一个列,语法怎么写,麻烦写清楚点,带上解释谢谢的主要内容,如果未能解决你的问题,请参考以下文章