create table bakInfo(
id int,
pname varchar2(10),
remark varchar2(10),
impdate varchar2(10),
upstate varchar(10));
create table Info(
id int,
pname varchar2(10),
remark varchar2(10),
impdate varchar2(10),
upstate varchar(10));
insert into Info values(1,'1111','1111','1111','1111');
insert into Info values(2,'2222','2222','2222','2222');
insert into Info values(3,'3333','3333','3333','3333');
insert into Info values(4,'1111','1111','1111','1111');
insert into Info values(5,'2222','2222','2222','2222');
insert into Info values(6,'3333','3333','3333','3333');
insert into bakInfo values(1,'1111','1111','1111','1111');
insert into bakInfo values(2,'2222','2222','2222','2222');
insert into bakInfo values(3,'3333','3333','3333','3333');
insert into bakInfo values(4,'4444','4444','4444','4444');
insert into bakInfo values(5,'1111','1111','1111','1111');
insert into bakInfo values(6,'2222','2222','2222','2222');
insert into bakInfo values(7,'3333','3333','3333','3333');
insert into bakInfo values(8,'4444','4444','4444','4444');
select * from bakInfo;
select * from info;
select * from bakInfo where id in (select id from info);
select b.* from bakinfo b INNER join info i on b.id = i.id;
select b.*
from bakInfo b
left join Info i
on b.id=i.id
where b.id in (3,4,1,2);
select b.*
from bakInfo b
left join Info i
on b.id=i.id
where exists( select 1 from (select 3 n from dual
union all select 4 n from dual
union all select 1 n from dual
union all select 2 n from dual) t
where b.id=t.n
)
oracle sql 替换 in ,dual性能优化
最新推荐文章于 2024-04-18 20:16:43 发布