我在stackoverlow上问过同样的问题,但没有得到答案,所以这就是我在这里问的原因(我读过应该在 SO 上问简单的 sql 问题,但我别无选择)。
假设我有 3 个表:posts
,post_categories
和categories
. 我正在实现某种带有过滤器的页面,我可以在其中按类别过滤帖子。用户可以选择多个类别。当他选择多个时,它们应该相加。我无法让它工作。我现在拥有的是简单的IN()
SQL 子句:
SELECT posts.id, post_categories.category_id FROM posts
JOIN post_categories ON posts.id = post_categories.post_id
WHERE post_categories.category_id IN (1,2,3) LIMIT 10;
Run Code Online (Sandbox Code Playgroud)
但它并不匹配所有的 id,它是OR
,我需要AND
. 我在这里需要的是查找类别为 的所有帖子id=1 AND id=2 AND id=3
,但此查询返回IN()
列表中至少有一个类别的帖子。