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

时间:2015-08-03 18:17:03

标签: mysql outsystems

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

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)

enter image description here

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

1 个答案:

答案 0 :(得分:0)

你有没有试过像

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

这就是它的工作原理

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

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