sqlserver中用不重复的条件更新两个表对应字段字段。
2016-01-12 09:39
288 查看
表T1和表T2,表T2的F23字段用表T1的F3字段更新,条件是T1.F2=T2.F22并且只有T1.F2和T2.F22是一一对应,T1只有一条记录和T2对应,例子如下:
create table t1(f1 int,f2 varchar(10),f3 varchar(10));
create table t2(f21 int,f22 varchar(10),f23 varchar(10));
insert into t1 values(1,'111','abc');
insert into t1 values(2,'111','abc');
insert into t1 values(3,'222','ddd');
insert into t2 values(1,'111',null);
insert into t2 values(2,'222',null);
update t2 set t2.f23 = t1.f3
from t1,t2
where t1.f2=t2.f22 and exists(select t3.f2,COUNT(*) from t1 as t3 where t3.f2=t1.f2 group by t3.f2 having COUNT(*) =1 );
select * from t1;
select * from t2;
create table t1(f1 int,f2 varchar(10),f3 varchar(10));
create table t2(f21 int,f22 varchar(10),f23 varchar(10));
insert into t1 values(1,'111','abc');
insert into t1 values(2,'111','abc');
insert into t1 values(3,'222','ddd');
insert into t2 values(1,'111',null);
insert into t2 values(2,'222',null);
update t2 set t2.f23 = t1.f3
from t1,t2
where t1.f2=t2.f22 and exists(select t3.f2,COUNT(*) from t1 as t3 where t3.f2=t1.f2 group by t3.f2 having COUNT(*) =1 );
select * from t1;
select * from t2;
相关文章推荐
- 专访搜狗DBA负责人王林平:为何从Oracle转向MySQL?
- 帆软报表FineReport数据库连接编码转换
- 基于C#的MongoDB数据库开发应用(3)--MongoDB数据库的C#开发之异步接口
- CentOS6.6下Redis3.0.6的安装配置
- 今天一大早来了,发现mysqlserver无法启动
- 转 即使被拖库,也可以保证密码不泄露
- Oracle用户密码过期和用户被锁解决方法
- Redis 集群安装
- oracle 进阶
- sqlite基本语句使用
- TimerTask实现定期检查数据库操作
- MongoDB学习笔记(一) MongoDB介绍及安装
- Oracle中的instr函数的用法
- SQLite使用(三)&&核心API使用
- MongoDB里做表间关联
- mysql的连接字符串
- oracle: ORA-32102: invalid OCI handle
- 自定义 启动和关闭 oracle 的命令
- oracle 开机启动
- jeesite框架搭建 (mysql数据库)