当我有r1,r2表时,如何在Oracle中没有相交的情况下实现r1 - (r1-r2)?

时间:2016-12-01 13:28:32

标签: sql oracle

我是SQL查询的新手。 r1,r2是数据列表。

我想实现r3 = r1 - (r1 - r2)而不相交。 和 - 设置操作。 并且stuid是检查值为负。

我认为遵循SQL Query是有效的。

create table r3 as
select *
from r1;

create table r4 as
select *
from r1;

delete from r3
where r3.stuid in
(delete from r4
where r4.stuid = r2.stuid)

(我必须使用deletee Query两次)

有用吗?

1 个答案:

答案 0 :(得分:1)

您似乎想要两组之间的重叠。这样做怎么样:

select r1.*
from r1
where exists (select 1 from r2 where r2.stuid = r1.stuid);

如果你想要一张新桌子:

create table r3 as
    select r1.*
    from r1
    where exists (select 1 from r2 where r2.stuid = r1.stuid);