1
SELECT posts.id, posts.body, posts.posted_at, posts.likes, posts.dislikes, users.`userName`
FROM users,posts,interests
WHERE (posts.user_id =3
OR interests.follower_id =3 AND posts.topics IN(SELECT interest_id FROM interests WHERE follower_id = 3))
AND users.ID = posts.user_id
AND posts.topics = interests.interest_id
ORDER BY posts.posted_at DESC
當user_id = 3是興趣表中某個主題後面的唯一人員時,此查詢正常工作。興趣表包括id,follower_id和(interest_id,其是諸如運動的主題)。SQL查詢從表中獲取記錄
posts表中包含一個主題列,用戶可以關注主題,一旦您按照主題將其插入到興趣表中。現在我試圖檢索用戶發佈的帖子,我希望獲得的帖子可以是我發佈的帖子(在帖子中有一列叫做user_id,它是發佈它的用戶的ID),也可以是我的主題帖子以下。
這裏的問題是當我運行這個查詢時,我得到重複的帖子,因爲一些其他用戶正在關注同一主題。