我正在建立一个社交网络,并希望显示用户所做的帖子和他所关注的人的帖子。
当我跟踪某人时,查询工作正常,它显示用户帖子和他跟踪的人的帖子,但是当我不跟踪任何人时,用户帖子也会消失,如果不应该这样做:
表格:
查询:
SELECT DISTINCT posts.id, posts.body, posts.posted_at, posts.postimg, posts.likes, users.username
FROM users, posts, followers
WHERE (posts.user_id = followers.user_id OR posts.user_id = 50)
AND users.id = posts.user_id AND follower_id = 50
ORDER BY posts.posted_at DESC;
2条答案
按热度按时间r3i60tvu1#
我想,这会给你想要的:
uqxowvwt2#
有点不清楚您的follower\u id列在哪个表中。。。所以我假设您的follower\ id列在posts表中。如果是,则向下过滤到follower_id=50的帖子,如果没有跟踪任何人,则该值应为null,因此在where子句中使用此过滤器过滤帖子。