选择共同关注者

ftf50wuq  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(342)

我知道这里有很多问题,但我没有找到适合我的答案。我正在建立一个社交网络,我正在处理用户列表页面。在我的数据库里有两个表, users & followers . 这个 id 中的列 users 表是 followers 列为 id , user_id & follower_id . 这个 follower_id 是跟踪的用户的用户id user_id 用户。
当显示社交网络上所有用户的列表时,我想排除:1)后跟 logged_in_user 2) 以下用户 logged_in_user 在显示所有用户的列表时,我还希望优先显示任何共同关注者。
这是我当前的查询( $useridlogged_in_user 以及 $start 是用户加载更多用户时发送的整数)

<?

//list of users following the `logged_in_user`
$followers = $db->query(
        'SELECT followers.id, followers.user_id, followers.follower_id, users.id, users.username, users.profileimg 
        FROM followers, users 
        WHERE followers.user_id=:userid 
        AND followers.follower_id=users.id 
        LIMIT 8 OFFSET '.$start.';', array(':userid'=>$userid));

//list of users being followed by the `logged_in_user`
$following = $db->query(
        'SELECT followers.id, followers.user_id, followers.follower_id, users.id, users.username, users.profileimg 
        FROM followers, users 
        WHERE followers.follower_id=:userid 
        AND followers.user_id=users.id 
        LIMIT 8 OFFSET '.$start.';', array(':userid'=>$userid));

//list of all users: here I excluded the `logged_in_user`
$users = $db->query(
        'SELECT users.id, users.username, users.profileimg, users.gender, users.last_seen 
        FROM users 
        WHERE users.id!=:userid 
        LIMIT 8 OFFSET '.$start.';', array(':userid'=>$userid));

?>

有没有人能帮我把这三个查询联系起来以得到想要的结果:一个列出所有关注/被关注用户的列表 logged_in_user i、 共同的追随者。谢谢。
更新我发现了一些代码来帮助我删除跟踪/被跟踪的用户 logged_in_user ```

我现在只需要把所有 `id` 与 `follower_id` 中的列 `followers` 表,因为它们对应 `user_id` 专栏将是双方的共同追随者 `logged_in_user` 用户也跟着他/她。
z9zf31ra

z9zf31ra1#

在上面的更新之后,我接下来所做的就是运行另一个查询来获取所需的用户。

<?

foreach ($users as $ur) {
	$user_id = $ur['id'];
	$mutual[]= $db->query('SELECT followers.id, followers.user_id, followers.follower_id, users.id, users.username, users.profileimg FROM followers, users WHERE followers.follower_id=:userid AND followers.user_id=users.id LIMIT 100 OFFSET '.$start.';', array(':userid'=>$user_id));
}

echo json_encode($mutual);

?>
k4aesqcs

k4aesqcs2#

没有答案。评论时间太长。。。
如果是我,我会从这样的事情开始(包括相同的ddl)。。。

1 Romeo
2 Juliet
3 Benvolio
4 Mercutio
5 Tybalt

user follows
   5       2
   4       1
   4       2
   1       3

……然后反问,什么样的问题能告诉我们还有谁在跟踪罗密欧。

相关问题