Oracle两表关联(join)更新字段值一张表到另一张表

【采用视图更新的方式】

有需求A表,B表,需要将B表中的name字段更新到A表中的name,两表有id关联,代码如下:

update 
(select a.name aname, b.name bname from A a, B b where a.id = b.id)
set aname = bname;
--注:两表关联属性id必须为unique index或primary key
时间: 2024-11-23 17:05:39

Oracle两表关联(join)更新字段值一张表到另一张表的相关文章

Oracle两张表关联批量更新其中一张表的数据

Oracle两张表关联批量更新其中一张表的数据 方法一(推荐): UPDATE 表2 SET 表2.C = (SELECT B FROM 表1 WHERE 表1.A = 表2.A) WHERE EXISTS (SELECT 1 FROM 表1 WHERE 表1.A = 表2.A); 尤其注意最后的外层where条件尤为重要,是锁定其批量更新数据的范围. 方法二: MERGE INTO 表2 USING 表1 ON (表2.A = 表1.A) -- 条件是 A 相同 WHEN MATCHED TH

Hive中小表与大表关联(join)的性能分析【转】

Hive中小表与大表关联(join)的性能分析 [转自:http://blog.sina.com.cn/s/blog_6ff05a2c01016j7n.html] 经常看到一些Hive优化的建议中说当小表与大表做关联时,把小表写在前面,这样可以使Hive的关联速度更快,提到的原因都是说因为小表可以先放到内存中,然后大表的每条记录再去内存中检测,最终完成关联查询.这样的原因看似合理,但是仔细推敲,又站不住脚跟. 多小的表算小表?如果所谓的小表在内存中放不下怎么办?我用2个只有几条记录的表做关联查询

Mysql中实现多表关联查询更新操作

今天一下要记录一下才行了,每次都要去网上查找方法,每次都难找得要命 Mysql在更新某些字段的数据时,有时候会依据其他表的数据进行更新,需要通过关联后对不同的行更新不同的值,传统的update set没法实现,可以用下面的方法来实现 UPDATE `widetable_solr_field` a INNER JOIN `widetable_field_increat` b SET a.`compose` = b.`udf` WHERE a.`fname` = CONCAT('t',b.`tabl

mysql更新字段值提示You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode

1 引言 当更新字段缺少where语句时,mysql会提示一下错误代码: Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences -> SQL Queries and reconnect. 0.000 se

Oracle多表关联如何更新多个字段

注意点:1.被update主表一定要加上过滤条件.2.查询出来更新结果集,同时也要作为被更新主表的条件,作为同步大家都是更新这部分数据.update student stu set (stu.name,stu.sex) = (select bak.name,bak.sex from student_bak bak where bak.id = stu.id and stu.age = 20 ) where exists (select 1 from student_bak bak where b

mysql如何更新一个表中的某个字段值等于另一个表的某个字段值

update a inner join b on a.bid=b.id set a.x=b.x,a.y=b.y ; 这里使用了case when 这个小技巧来实现批量更新.举个例子: 1 2 3 4 5 6 7 UPDATE categories     SET display_order = CASE id         WHEN 1 THEN 3         WHEN 2 THEN 4         WHEN 3 THEN 5     END WHERE id IN (1,2,3)

mysql 表关联批量更新

项目中最近遇到了需要手动修改某个表的某个字段的数据,但是这个数据是来自别的表,需要关联,所以需要用到关联的批量更新,特此记录一下. UPDATE t_account_trans_info AS iiINNER JOIN t_user AS uu ON ii.tran_user_id = uu.id SET ii.text2 = uu.link_man where ii.tran_user_id = uu.id 原文地址:https://www.cnblogs.com/bfyq/p/9774637

mongo 更新字段值,若不存在则自动创建

查询语句 db.getCollection("A表").update( {  "id":{$eq:11} } ,{     $set:{"a":1}  } , {multi: true} ) 作用:根据条件来更新A表中a字段的值,若a字段不存在则创建. ------------------------------- 查询语句分析 条件:"id":{$eq:11}   id=11 更新:$set:{"a":1

SQL学习(五)多表关联-join

在实际工作中会用到多表联查,此时需要用到关键字JOIN 一.inner join(内连接) 至少有一个匹配时返回行,只返回两个表中连接字段相等的行 如: select * from ticket inner join job on ticket.id=job.t_id 只查询出,ticket.id=job.t_id的数据 二.left join(左连接) 即使右表中没有匹配,也从左表中返回所有的行 如: select * from ticket left join job on ticket.i