SQL-获取插入或未插入人员的所有项目

SQL-获取插入或未插入人员的所有项目,sql,sql-server,Sql,Sql Server,我希望有一个查询,它能给我一个数据库中包含的所有项目的列表,对于一个给定的人,是否插入了return这个项目 因此,我有以下表格: 项目 id(主键) 名字 项目人员 id(主键) idPeople idProject 普拉芬德 人 id(主键) 名字 我使用这个查询,但不起作用 SELECT DISTINCT P.ID as IDProject, case when ProjP.ID IS NOT NULL THEN 'TRUE' else 'FALSE' end as ExistP

我希望有一个查询,它能给我一个数据库中包含的所有项目的列表,对于一个给定的人,是否插入了return这个项目

因此,我有以下表格:

项目 id(主键)

名字

项目人员 id(主键)

idPeople

idProject

普拉芬德

人 id(主键)

名字

我使用这个查询,但不起作用

SELECT DISTINCT P.ID as IDProject, 
    case when ProjP.ID IS NOT NULL THEN 'TRUE' else 'FALSE' end as ExistProjP,
    ProjP.ID as ProjectPeopleID, ProjP.Plafond  
FROM Project P
LEFT JOIN ProjectPeople ProjP ON ProjP.idProject=P.ID
LEFT JOIN People PP on PP.ID = ProjP.idPeople
AND PP.ID = ISNULL(@IDPEOPLE,PP.ID);

有人能帮我吗?

如果你已经知道
@IDPEOPLE
你可以进行以下查询:

SELECT p.id, p.name, CASE WHEN pp.Id IS NOT NULL THEN 'TRUE' ELSE 'FALSE' END AS ExistProjP
FROM Project p
LEFT JOIN ProjectPeople pp ON (pp.idProject = p.id AND pp.idPeople = @IDPEOPLE)

这将返回所有项目,并带有一个标志,指示指定的人员是否属于该项目。

它是如何工作的?它是否出错(因为您没有声明@IDPEOPLE)或者没有返回您期望的行?否,否。。。此查询已插入到过程中@IDPEOPLE是查询工作但不返回所需内容的变量:)