我正在尝试构建 SQL 查询(我正在运行 postgres),它会过滤掉一些帖子:
可以说,我有用户模型(id、名称等...)、黑名单模型(带有 id、user_id、blacklisted_user_id)和帖子模型(id、author_id、标题等)。
假设用户 A(id=5) 阻止了用户 B(id=10)。
用户 A 和 B 都不应看到他们的帖子。我正在尝试看起来某事的查询。像这样:
SELECT posts.* FROM "posts"
LEFT JOIN blacklists b ON (b.user_id = posts.author_id OR
b.blacklisted_user_id = posts.author_id)
WHERE (b.user_id = 5 AND b.blacklisted_user_id = posts.author_id) OR
(b.user_id = posts.author_id AND b.blacklisted_user_id = 5)
但是,结果与我需要的完全相反:我只收到来自黑名单用户的帖子。
当我使用b.user_id != 5
时,我得到空的响应。