0

我有两张桌子

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 也有 posi 值 2 并且 cwawr 有 xyz 所以它也应该被跳过。

所以结果应该是

1002 

只要。

提前致谢, 埃什维尔

4

1 回答 1

4

经典不存在(更正式地称为“反半连接”和相关

SELECT
   *
FROM
   Table1 T1
WHERE
   NOT EXISTS (SELECT *
       FROM
         Table2 T2
       WHERE
         T2.posi = 2 AND T2.cwawr = 'xyz'
         AND
         T2.ides = T1.ides)
于 2012-10-31T09:51:41.967 回答