【问题标题】:Oracle query - How to check if a user is the only one assigned to a projectOracle 查询 - 如何检查用户是否是唯一分配给项目的用户
【发布时间】:2020-12-21 20:25:43
【问题描述】:

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

有一个“projMember”表,其中包含项目 ID、用户 ID 和项目成员类型 ID。我需要知道是否有任何项目 ID,其中该用户是唯一成员类型 ID 为 1 的用户。

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

我试过了,但它只给了我分配给项目的用户数量,如果我按用户 ID 过滤,我得到用户分配给的项目数量,但不知道如何检查她/他是否是唯一的.

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

【问题讨论】:

    标签: sql oracle select oracle12c having-clause


    【解决方案1】:

    您可以使用having 子句:

    select projectid 
    from projmember 
    where projmembertypeid = 1
    group by projectid
    having min(userid) = 73 and max(userid) = min(userid)
    order by projectid;
    

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

    【讨论】:

    • 谢谢。为了获取项目信息,我想我会将“projmember”表与“project”表进行内部连接,并将“projectname”添加到“select”和“group by”。
    • @NoBullMan:是的,这将是正确的方法。
    猜你喜欢
    • 2019-12-28
    • 1970-01-01
    • 2013-01-03
    • 1970-01-01
    • 1970-01-01
    • 2017-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多