高级查询未返回所需结果的问题

Issue with Advanced Query not returning desired results

我有一个 table 项目,其中包含以下字段

ID| Number  | Name    | CreatedOn  | CreatedBy 
----------------------------------------------

其他table是CLDProject有以下字段

ID| CLDId  | ProjectId | CreatedOn  | CreatedBy 
-----------------------------------------

在这里,我必须 select 未为特定 CLDId

分配 CLDProject.ProjectId 的所有项目的列表

我试过了

SELECT {Project}.*
FROM {Project}
WHERE NOT EXISTS ( SELECT 1 FROM {CLDProjects} WHERE {CLDProjects}.[ProjectId] = {Project}.[Id] AND {CLDProjects}.[CLDId] =@CLDId)

问题是它显示了所有项目,但我想 select 未为特定 CLDId 分配 CLDProject.ProjectId 的项目。我是新手,非常感谢任何帮助。

你有没有试过

SELECT {Project}.*
FROM {Project}
WHERE {Project}.ID NOT IN (
    SELECT DISTINCT {CLDProject}.[ProjectId]
    FROM {CLDProject}
    WHERE {CLDProject}.[CLDId] = @CLDId
    )

这是它的工作原理

  1. 查找与给定 CLDID 关联的所有项目(内部查询)

  2. 查找不在该列表中的项目(外部查询)