gpt4 book ai didi

postgresql - 根据关系选择不同的值

转载 作者:行者123 更新时间:2023-11-29 12:12:26 25 4
gpt4 key购买 nike

上下文:

给定一个存储用户关系信息的表,单个记录表示单向关系,即 user_1 在记录列 ' 中跟随 user_2 userid' 是 user_1,列 'relateduserid' 是 user_2。如果存在第二条记录,其中用户列“userid”为 user_2,列“relateduserid”为 user_1,那么我们认为这两个“ friend ”并且关系(逻辑上)被认为是双向的。

编辑:所有用户信息都存储在单独的“用户”表中。

问题:

我希望获取所有不同的单向关系用户 ID(即只有一条记录显示我的用户 ID 和我关注的人的用户 ID),其中相关用户 ID 不是给定的用户 ID。

我尝试了几个没有返回正确结果的查询,例如使用不同的用户标识返回表中的所有 用户标识。

select distinct userid from userRelTable where relateduserid <> 1234

最佳答案

给定 user 和 userRelTable 这两个表,我用六个用户填充了 user 表,并用六个关系填充了 userRelTable。

ID  userid-----------1   user_12   user_23   user_34   user_45   user_56   user_6
ID  userid  relateduserid-------------------------1   user_1  user_22   user_2  user_13   user_2  user_34   user_3  user_15   user_4  user_66   user_5  user_6

Given the criteria, this query will give you all users that have neither a uni-directional or bi-directional relationship with 'user_2'

    select * from [user]
where [user].userid
not in
(
select userid from userRelTable
where userRelTable.userid = 'user_2'
or userRelTable.relateduserid = 'user_2'
)
and [user].userid
not in
(
select relateduserid from userRelTable
where userRelTable.userid = 'user_2'
or userRelTable.relateduserid = 'user_2'
)

结果如下表:

ID  userid-----------4   user_45   user_56   user_6

唯一有问题的是 user_3。根据定义,user_3 不应出现在结果集中,因为与 ID #3 处的 user_2 存在单向关系。

关于postgresql - 根据关系选择不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26530872/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com