<分区>
我不知道还能问哪里。我有这个查询:
SELECT po.* FROM posts po, follows f, user pn
WHERE (f.follower_id = #{id}
AND f.followed_id = pn.id
AND po.user_id = pn.id)
OR (po.user_id = #{id})
ORDER BY created_at DESC LIMIT 10 OFFSET #{offset}
我从关注者那里得到的帖子是正确的,但不是用户自己的帖子。似乎 OR
的第二部分总是被忽略。
SELECT * FROM posts WHERE user_id = #{id}
虽然工作正常。
编辑
对不起,我在完成文本之前不小心按了回车!!
编辑 2
这现在似乎可行了:
SELECT DISTINCT po.* FROM users pn
INNER JOIN follows f ON f.follower_id = #{id}
INNER JOIN posts po ON po.user_id = f.followed_id OR po.user_id = #{id}
ORDER BY created_at DESC LIMIT 10 OFFSET #{offset}
也许有人能告诉我为什么?