我希望有一个查询,它会为我提供数据库中包含的所有项目的列表,对于给定的人,如果插入了返回项,或者不是此项目。
所以,我有表:
id(PK)
名称
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);
任何人都可以帮助我吗?
答案 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)
这将返回所有项目以及指示指定人员是否属于项目的标志。