0

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

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

其他表是 CLDProject 有以下字段

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

在这里,我必须选择未为特定 CLDId 分配 CLDProject.ProjectId 的所有项目的列表

我试过了

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

在此处输入图像描述

问题是它显示了所有项目,但我想选择没有为特定 CLDId 分配 CLDProject.ProjectId 的项目。我是新来的查询任何对此的帮助非常感谢。

4

1 回答 1

0

你有没有尝试过类似的东西

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

这就是它的工作原理

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

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

于 2015-08-03T23:42:08.710 回答