SQL-获取插入或未插入人员的所有项目
我希望有一个查询,它能给我一个数据库中包含的所有项目的列表,对于一个给定的人,是否插入了return这个项目 因此,我有以下表格: 项目 id(主键) 名字 项目人员 id(主键) idPeople idProject 普拉芬德 人 id(主键) 名字 我使用这个查询,但不起作用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
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是查询工作但不返回所需内容的变量:)