从您关注的人那里获取有关 Feed 的正确帖子

时间:2021-05-16 13:41:06

标签: mysql sql

我正在尝试显示我在提要上关注的人的所有帖子。

我将 3 个表连接在一起:用户、关注者和帖子。我看到了我关注的正确的人,但有我登录的用户的帖子。所以我的问题是如何让正确的用户获得正确的帖子。在我下面的查询中,我知道我正在将 posts.user_id 与关注者 ID 一起加入,但如果我将其更改为关注,我将获得关注者头像和名称,我关注的次数与我关注某人的次数相同。

我的关注者表:[关注者][1];

|身份证 |是关注者 |正在关注 |状态|

我的帖子表:[posts][2];

|身份证 |照片|说明 |位置 |发布日期 |用户 ID | filter_id |

我的用户表:[users][3];

|身份证 |全名 |用户名 |电子邮件 |密码 |头像 |生物 |日期创建 | isAdmin |是私人的|

[1]:https://i.stack.imgur.com/LQqaZ.png [2]:https://i.stack.imgur.com/Uzfpx.png [3]:https://i.stack.imgur.com/T8O9P.png

我的查询如下所示:

SELECT *, posts.id
FROM posts
  INNER JOIN followers ON posts.user_id = followers.isFollower
  INNER JOIN users ON followers.isFollowing = users.id
where user_id = :userid

1 个答案:

答案 0 :(得分:0)

我们需要一个我们关注的人的帖子列表。

要获取列表,我们需要获取 user_id 等于 followers 中那些 isFollower 列的 posts em> 表,其中 isFollowing 列的 ID 与我们的相同。

因此,我们将 postsfollowers 合并,并使 isFollower 列等于我们帖子的 user_id ,并且 isFollowing 等于我们的 ID。

SELECT `posts`.*
FROM `posts`
JOIN `followers` ON (
    `followers`.`isFollower` = `posts`.`user_id` AND
    `followers`.`isFollowing` = :userId
)
相关问题