查找表中不存在的所有项 - SQL

时间:2015-01-26 16:27:38

标签: sql sql-server

我无法获取SQL查询以返回我需要的数据。我想要做的是获取表中缺少的所有记录。因此,如果我有记录:92401, 92402, 92404, 92406我希望查询返回92403, 92405

这是我现在正在尝试使用的查询:

select TicketNum
from Tickets
where not exists(select TicketNum
             from TicketBooks
             where TicketBooks.TicketNum=Tickets.TicketNum)

目前,这将不会返回任何数据。如果我将where子句更改为exists,那么它将返回表中的所有记录。

92403, 92405中不存在值Tickets,但它们存在于TicketBooks中。

有关如何修改查询以显示此类结果的任何建议?

1 个答案:

答案 0 :(得分:2)

  

值92403,92405不存在于故障单中,但它们存在   在TicketBooks。

所以你想检查相反的结果:

SELECT TicketNum FROM TicketBooks
WHERE NOT EXISTS
(
    SELECT 1 FROM Tickets WHERE Tickets.TicketNum = TicketBooks.TicketNum
)