表1
Id Name DemoID
1 a 33
2 b 44
3 c 33
4 d 33
5 e 44
表格2
Id DemoID IsTrue
11 33 1
12 44 1
表3
Id Table1_ID
11 1
现在,我们可以使用以下查询语句找到表2中存在的DemoID -
SELECT Table1.Id FROM Table1 as Table1
WHERE EXISTS
(
SELECT * FROM Table2 as Table2
WHERE Table1.DemoID = Table2.DemoID AND Table2.IsTrue= 1
)
结果 - 1,2,3,4,5
但我还想检查第三个表中是否存在这些记录。使用一个更多的条件 NOT EXISTS 在同一个查询中?
例如 Table3
现在只有一个 Table1_ID
列值为 1,现在新的 NOT exist 查询应该给我结果为 2,3,4,5
我尝试过像这样的查询 -
SELECT Table1.Id FROM Table1 as Table1
WHERE EXISTS
(
SELECT * FROM Table2 as Table2
WHERE Table1.DemoID = Table2.DemoID AND Table2.IsTrue= 1
)
AND NOT EXISTS (SELECT * FROM Table3)
但是它没有给我任何记录。它应该给我剩余的记录,它们是2、3、4、5。