oracle数据库中修改表中某字段的值等于另一个表中字段的值

见图,T1表和T2表需求:修改T2表中的C_date字段的值,等于T1表中的EventTime的值,对应关系是T1.ID=T2.IDT1表中的ID是PK... 见图, T1表和T2表
需求: 修改T2表中的C_date字段的值,等于T1表中的EventTime的值, 对应关系是T1.ID = T2.ID
T1表中的ID是PK
展开
 我来答
freechan10
2019-12-12 · TA获得超过2.9万个赞
知道小有建树答主
回答量:263
采纳率:68%
帮助的人:12.4万
展开全部

1、创建测试表,

create table test_t1(id varchar(30) , EventTime date);

create table test_t2(id varchar(30) , C_date date);

2、插入测试数据

insert into test_t1 values(1,sysdate-1);

insert into test_t1 values(2,sysdate-2);

insert into test_t1 values(3,sysdate-3);

insert into test_t2 values(1,null);

insert into test_t2 values(1,null);

insert into test_t2 values(1,null);

commit;

3、查询T2表中数据,可以发现c_date字段全部为空,select t.*, rowid from test_t2 t;

4、编写sql,修改T2表中的C_date字段的值,等于T1表中的EventTime的值;update test_t2 t2 set t2.c_date = (select eventtime from test_t1 t1 where t1.id = t2.id)

5、再次查询T2表中数据,可以发现c_date字段全部为T1表中对应的数据;select t.*, rowid from test_t2 t;

勒布榔詹姆斯
推荐于2017-09-02 · TA获得超过349个赞
知道答主
回答量:71
采纳率:0%
帮助的人:50.5万
展开全部
UPDATE t2 SET t2.C_date = (select EventTime from t1 where t1.id = t2.id)

直接用

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e23057c
2013-12-26 · TA获得超过184个赞
知道小有建树答主
回答量:121
采纳率:0%
帮助的人:62.2万
展开全部
UPDATE t2 SET t2.C_date = (select EventTime from t1 where t1.id = t2.id) where exists(select 1 from t1 where t1.id = t2.id)

注重效率
追问
更喜欢您的回答, 
抱歉已经给了上面的朋友
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式