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

时间:2013-09-20 08:03:36

标签: sql sql-server

我希望有一个查询,它会为我提供数据库中包含的所有项目的列表,对于给定的人,如果插入了返回项,或者不是此项目。

所以,我有表:

项目

id(PK)

名称

ProjectPeople

id(PK)

idPeople

idProject

plafond

id(PK)

名称

我使用此查询,但不起作用

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);

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

如果您已经知道@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)

这将返回所有项目以及指示指定人员是否属于项目的标志。