oracle减去select语句

时间:2017-07-31 08:40:02

标签: sql oracle

我有两张桌子。 A&乙

ID   Name
1     A
2     B
3     C
4     D

ID   Sal
1    400
2    300
3    500

现在我需要从第一个表中获取记录(ID,Name),这些sal在第二个表中没有分配。使用子查询我得到了这个。但我需要在不使用子查询的情况下解决它。 所以我尝试使用减运算符。但我现在正在获得完整的第一张表。

select id,name from A
minus
select id,to_char(null) from B;

我做错了什么?

2 个答案:

答案 0 :(得分:0)

您可以使用minus inside with子句

with ids as (
select id
from A
minus
 select id
 from B
 ) select A.id ,A.name 
 from A join ids on ids.userid=A.userid;

答案 1 :(得分:0)

  

但是没有使用子查询我需要解决。

使用CTE:

with tbl(id) as ( select id from B)
select id,name 
from A 
inner join tbl b
on a.id <> b.id