Home >Database >Mysql Tutorial >Oracle使用查询结果更新表的方法

Oracle使用查询结果更新表的方法

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-06-07 16:49:582193browse

Oracle使用一个查询的结果更新另一个表的数据。模拟实验如下,使用t2表的查询结果,更新t1表相同id的数据。

Oracle使用一个查询的结果更新另一个表的数据。

模拟实验如下,使用t2表的查询结果,更新t1表相同id的数据。
 
drop table t1;
 
drop table t2;

create table t1(id int primary key,nickname varchar(20),playNum varchar(20));

create table t2(id int primary key,nickname varchar(20),playNum varchar(20));

insert into t1 values(1,1,10);

insert into t1 values(2,2,20);

insert into t1 values(3,3,30);

insert into t2 values(1,11,100);

insert into t2 values(2,22,200);

insert into t2 values(3,33,300);

commit;

Oracle有两种方式:
 内联视图更新
 
update (
 
    select t1.id t1id ,t1.nickname t1nickname,t1.playNum t1playnum,t2.id t2id ,t2.nickname t2nickname,t2.playNum t2playnum

    from t1 inner join t2 on (t1.id=t2.id)

)

set t1nickname=t2nickname,t1playnum=t2playnum;

 

相关子查询
 
update t1 set (nickname,playNum)=
 
(select nickname,playNum from t2 where t1.id=t2.id);

MySQL只有下面的这一种方式
 不过可以同时修改两个表的数据.
 用t2的playNum更新t1,用t1的nickname更新t2

update t1,t2
 
set t2.nickname=t1.nickname,t1.playNum=t2.playNum

where t1.id=t2.id;

MySQL和Oracle的方式互不通用。

Linux-6-64下安装Oracle 12C笔记

在CentOS 6.4下安装Oracle 11gR2(x64)

Oracle 11gR2 在VMWare虚拟机中安装步骤

Debian 下 安装 Oracle 11g XE R2

本文永久更新链接地址:

linux

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn