我有两张桌子
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
在上面两个表中我想选择table1的所有ides,其中posi不等于2而cwawr不等于xyz。例如1001 posi有2并且cwawr有xyz所以这个id应该被跳过。同样1003也有posi值2和cwawr有xyz所以它也应该跳过。
所以结果应该是
1002
仅
提前致谢, Eshwer
答案 0 :(得分:4)
经典不存在(a.k.a。更正式地“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)