0

我有两个表如下。我正在使用 Oracle 10g

TableA
---------
id  Name
--- ----
1   abc
2   def
3   xxx
4   yyy

TableB
---------
id  Name
--- ----
1   abc
2   def

TableC
---------
id  Name
--- ----
1   abc
2   def

现在我需要获取 ids from TableA which are not there in TableB and TableC。在不使用 NOT IN 子句的情况下如何做到这一点?

请帮我!

谢谢!

4

4 回答 4

2

请试试:

SELECT 
  a.ID, 
  a.NAME
FROM 
  TABLEA a LEFT JOIN TABLEB b ON a.ID=b.ID 
    LEFT JOIN TABLEC c ON a.ID=c.ID
WHERE 
  b.ID IS NULL AND 
  c.ID IS NULL;
于 2013-03-08T10:58:12.340 回答
1
select * from TableA
minus
select * from TableB

编辑 :

不在 B 和 C 中的:

select * from TableA
minus (
  select * from TableB
  intersect
  select * from TableC
)

不在 B 或 C 中的:

select * from TableA
minus 
select * from TableB
minus
select * from TableC
于 2013-03-08T10:56:21.987 回答
0
select a.id
from tableA a,tableB b,tableC c
where a.id != b.id and a.id!=c.id 

这样好吗?

于 2013-03-08T11:21:05.343 回答
0
select * from TableA
minus
(select * from TableB
union
select * from TableC)
于 2013-03-08T11:22:39.853 回答