gpt4 book ai didi

Mysql查询关注者列表

转载 作者:行者123 更新时间:2023-11-28 23:34:59 24 4
gpt4 key购买 nike

我想弄清楚如何获取用户关注者列表以及他/她关注他们的状态。例如,我有 10 个关注者,我需要知道我是否关注他们。这是一个类似于 Instagram 的功能,您可以观察人,也可以被观察。

我有一张 table :

follower     user_id     reg_dt       followed
1 2 date true

在上面提到的示例中,用户 1 被用户 2 关注。如果用户取消关注,则该标志将为 false,但它会在数据库中。

我要实现:

follower     user_id     reg_dt     followed     logged_user_follower
1 2 date true false

表示用户1被用户2关注,但用户1没有关注用户2。

我尝试了 2 个查询:

select follower.follower_id as follower, follower.user_id as user_id, follower.followed as followed, follower.reg_dt as reg_dt
from tb_follower follower
where follower.follower_id=1 and follower.followed=1;

获取(用户 1 的)关注者列表以及:

select 1 as logged_user_follower from tb_follower follower
where follower.follower_id=follower.follower_id and follower.followed=1 and follower.user_id = follower.user_id limit 1

获取状态 logged_user_follower。

我不知道如何将其合并到查询中,以高效地获取列出特定用户的所有关注者以及他/她关注他们的状态。

任何帮助将不胜感激。谢谢。

最佳答案

我认为您可以使用 LEFT JOIN 来获取反向记录:

select f1.follower_id as follower, 
f1.user_id as user_id,
f1.followed as followed,
f1.reg_dt as reg_dt,
coalesce(f2.followed, false) as logged_user_follower
from tb_follower f1
left join tb_follower f2
on f1.follower_id = f2.user_id and f1.user_id = f2.follower_id
where f1.follower_id = 1 and f1.followed = 1;

关于Mysql查询关注者列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36041131/

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