table1"
col1 col2 col3
A1 2000
A2 1800
A3 5000 2005-10-02
A4 3000
A5 4000
table2
col1 col2 col3
A1 小王 2005-11-02
A2 小张 2005-11-05
A3 小张 2005-10-02
A4 小钱 2005-01-02
A5 小孙 2005-12-02
table1和table2用col1关联
请用SQL更新table1表中的col3,条件是table1中col3为空的记录,更新为记录对应table2的col3记录;
即要的最后结果为:
table1"
col1 col2 col3
A1 2000 2005-11-02
A2 1800 2005-11-05
A3 5000 2005-10-02
A4 3000 2005-01-02
A5 4000 2005-12-02
实现:
Update t1 set t1.col3=(select t2.col3 from t2 where t1.col1=t2.col1)
where t1.col3 is null
更严谨的做法是:Update t1 set t1.col3=(select t2.col3 from t2 where t1.col1=t2.col1)
where trim(t1.col3) is null
更更严谨的做法是:
Update t1 set t1.col3=(select t2.col3 from t2 where t1.col1=t2.col1)
where trim(t1.col3) is null
and exists (select 1 from t2 where t2.col1 = t1.col1);
t1, t2 中的 col1 还必须是主键
分享到:
相关推荐
sqlserver,oracle,mysql多表关联更新数据
oracle两表关联更新Demo,使用exists嵌套子查询实现两表关联更新
两个表关联后批量更新数据,根据关联表条件批量更新数据
方法一(推荐): UPDATE 表2 ...尤其注意最后的外层where条件尤为重要,是锁定其批量更新数据的范围。 方法二: MERGE INTO 表2 USING 表1 ON (表2.A = 表1.A) -- 条件是 A 相同 WHEN MATCHED THEN UP
主要介绍了SQL update 多表关联更新的实现代码,需要的朋友可以参考下
对Oracle多表关联更新的应用研究.pdf
例如: 两表(多表)关联update -- 仅在where字句中的连接 --这次提取的数据都是VIP,且包括新增的,所以顺便更新客户类别 update customers a -- 使用别名 set customer_type='01' --01 为vip,00为普通 where ...
--客户资料表 create table customers ( customer_id number(8) not null, -- 客户标示 city_name varchar2(10) not null, -- 所在城市 customer_type char(2) not null, -- 客户类型 ... ) create ...
struts2+spring+hibernate+oracle
主要介绍了SQLServer批量更新两个关联表数据的方法,提供了2种关联查询与更新语句的使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
主要介绍了Oracle中多表关联批量插入,批量更新与批量删除操作,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
Hibernate多表关联配置及错误解决方法,及时更新,相关信息待下回分解!
因为项目要求实现一次性同时更新多条不同的记录的需求,和同事讨论了一个比较不错的方案,这里供大家参考下
一些ORACLE的表链接查询。求最高,最低,排序
通过临时表更新关联表
NULL 博文链接:https://airong.iteye.com/blog/356174
.Net Core2.1三层架构,使用SqlSugar对SqlServer数据进行数据交互,实现增、删、改、查