SQL Server查询不在另一个表中的地方

geo*_*rtz 1 sql sql-server

我有三张桌子:

工作

    JobId
    StartDate
    RehireDate
Run Code Online (Sandbox Code Playgroud)

证件

    PaperworkId
    DocumentName
Run Code Online (Sandbox Code Playgroud)

JobPaperwork

    JobId
    PaperworkId
    Completed
Run Code Online (Sandbox Code Playgroud)

我需要找到没有为其分配具有特定文档名称的文档的任何作业.我不确定如何构造此查询.使用NOT IN不起作用,因为它返回每个作业,因为它正在找到分配给他们的其他文书工作的作业.

这是我开始的:

select j.jobid 
from Job j 
inner join JobPaperwork jp on j.JobId = jp.JobID 
where j.startdate > dateadd(day, -30, getdate()) 
  and j.rehiredate is not null 
  and jp.PaperworkID not in (select paperworkid 
                             from Paperwork 
                             where documentname like '%searchterm%') 
Run Code Online (Sandbox Code Playgroud)

M.A*_*Ali 5

select j.jobid 
from Job j 
inner join JobPaperwork jp on j.JobId = jp.JobID 
where j.startdate > dateadd(day, -30, getdate()) 
and j.rehiredate is not null 
and NOT EXISTS ( select 1 
                 from Paperwork pw 
                 where jp.PaperworkID = pw.paperworkid
                 and pw.documentname like '%searchterm%'
                ) 
Run Code Online (Sandbox Code Playgroud)