Sql Oracle查询-如何检查用户是否是分配给项目的唯一用户

Sql Oracle查询-如何检查用户是否是分配给项目的唯一用户,sql,oracle,select,oracle12c,having-clause,Sql,Oracle,Select,Oracle12c,Having Clause,我正在尝试确定是否将用户分配给具有特定角色(ProjMemberTypeID)的任何项目,如果是,是否只有他/她一个 select count(userid), projectid from projmember where projmembertypeid = 1 -- and userid=73 group by projectid order by projectid; 有一个包含项目ID、用户ID和项目成员类型ID的“projMember”表。我需要知道是否有任何项目ID,其中该用

我正在尝试确定是否将用户分配给具有特定角色(ProjMemberTypeID)的任何项目,如果是,是否只有他/她一个

select count(userid), projectid 
from projmember 
where projmembertypeid = 1 -- and userid=73
group by projectid
order by projectid;
有一个包含项目ID、用户ID和项目成员类型ID的“projMember”表。我需要知道是否有任何项目ID,其中该用户是唯一一个成员类型ID为1的用户

是否也可以根据项目ID获取一些项目信息(如名称,…),将请求的查询与“项目”表连接起来

我尝试了这个方法,但它只给出了分配给项目的用户数,如果我按用户ID筛选,我会得到分配给用户的项目数,但不知道如何检查用户是否是唯一的用户

select count(userid), projectid 
from projmember 
where projmembertypeid = 1 -- and userid=73
group by projectid
order by projectid;

您可以使用
having
子句:

选择projectid
来自projmember
其中projmembertypeid=1
按投影分组
最小(userid)=73,最大(userid)=最小(userid)
按投影排序;

查询过滤相关成员类型,然后按项目聚合;剩下要做的就是确保找到给定的用户,而不是其他用户。

您可以使用
having
子句:

选择projectid
来自projmember
其中projmembertypeid=1
按投影分组
最小(userid)=73,最大(userid)=最小(userid)
按投影排序;

查询过滤相关成员类型,然后按项目聚合;剩下要做的就是确保找到给定的用户,而不是其他用户。

谢谢。为了获得项目信息,我想我会将“projmember”表与“project”表进行内部联接,并将“projectname”添加到“select”和“groupby”。@NoBullMan:是的,这是正确的方法。谢谢。为了获得项目信息,我想我会将“projmember”表与“project”表进行内部连接,并将“projectname”添加到“select”和“groupby”。@NoBullMan:是的,这是正确的方法。