我正在尝试显示我在提要上关注的人的所有帖子。
我将 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
答案 0 :(得分:0)
我们需要一个我们关注的人的帖子列表。
要获取列表,我们需要获取 user_id 等于 followers 中那些 isFollower 列的 posts em> 表,其中 isFollowing 列的 ID 与我们的相同。
因此,我们将 posts 与 followers 合并,并使 isFollower 列等于我们帖子的 user_id ,并且 isFollowing 等于我们的 ID。
SELECT `posts`.*
FROM `posts`
JOIN `followers` ON (
`followers`.`isFollower` = `posts`.`user_id` AND
`followers`.`isFollowing` = :userId
)