2012-10-31 21 views
0

我有兩個表如何跳過的ID從父表子表上的基值

table1 

ides name 

1001 AA 
1002 BB 
1003 CC 


table2  

ides posi cwawr 

1001 2 xyz 
1001 4 lmn 
1001 6 abc 
1002 2 ijk 
1002 4 lmo 
1002 6 pqr 
1003 2 xyz 
1003 4 sfs 
在上述兩種表

我要選擇表1的所有的IDE,其中POSI不等於2,cwawr不等於到xyz。例如1001 posi有2和cwawr有xyz,所以這個id應該跳過。相同的1003也具有位置值2,並且cwawr具有xyz,所以它也應該跳過。

所以結果應該是

1002 

由於提前, Eshwer

回答

4

經典NOT EXISTS(又名更正式的 「anti semi join」 和relationally

SELECT 
    * 
FROM 
    Table1 T1 
WHERE 
    NOT EXISTS (SELECT * 
     FROM 
     Table2 T2 
     WHERE 
     T2.posi = 2 AND T2.cwawr = 'xyz' 
     AND 
     T2.ides = T1.ides)