首页 > 解决方案 > 选择查询不能正常工作-SQL

问题描述

我正在建立一个社交网络,并想显示用户所做的帖子以及他关注的帖子。

当我关注某人时,查询工作正常,它显示用户帖子和他关注的人的帖子,但是当我不关注任何人时,用户帖子也会消失,但不应该这样做:

桌子:

在此处输入图像描述

询问:

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;

标签: sql

解决方案


我认为,这应该给你你想要的:

SELECT DISTINCT posts.id, posts.body, posts.posted_at, posts.postimg, posts.likes, users.username
FROM posts
LEFT JOIN users ON posts.user_id = users.id
LEFT JOIN followers ON posts.user_id = followers.user_id
WHERE posts.user_id = 50
ORDER BY posts.posted_at DESC;

推荐阅读