0

我想要一个查询,它给我一个包含在数据库中的所有项目的列表,并且对于给定的人,是否插入了这个项目。

所以,我有桌子:

项目

身份证(PK)

姓名

项目人

身份证(PK)

id人

idProject

平台

人们

身份证(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);

任何人都可以帮助我吗?

4

1 回答 1

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)

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

于 2013-09-20T08:49:17.180 回答