2011-11-17 92 views
1

我在Oracle上有兩個表。你說:從另一個表中沒有該組合的表中獲取所有結果

table1: 
id varchar2, 
name varchar2, 
phone number, 
age number, 
a  varchar2, 
b  varchar2, 
c  varchar2 

table2: 
z varchar2, 
a varchar2, 
b varchar2, 
c varchar2 

我應該得到table 1所有結果不
ab組合,ctable 2

我該怎麼辦?

回答

4

這聽起來像你想NOT EXISTS

SELECT * 
    FROM table1 t1 
WHERE NOT EXISTS (
    SELECT 1 
     FROM table2 t2 
    WHERE t1.a = t2.a 
     AND t1.b = t2.b 
     AND t1.c = t2.c) 
3

可以使用存在條款。

Select * 
from table1 t1 
where not exists 
(select * from table2 t2 
    where t1.a = t2.a 
    and t1.b = t2.b 
    and t1.c = t2.c) 
+0

工作就像一個魅力! – Yaroze

+0

非常感謝! – Yaroze

4

不知道,如果你想這樣的:

SELECT * 
FROM table1 t1 
LEFT JOIN table2 t2 ON t1.a=t2.a AND t1.b=t2.b AND t1.c=t2.c 
WHERE t2.z IS NULL 
+0

+1爲了顯示有多種方式來完成任務。根據要求,我會將其改爲「從......選擇t1。*」 –

相關問題