小编Dim*_*ets的帖子

使 IN 子句表现得像 AND 子句

我在stackoverlow上问过同样的问题,但没有得到答案,所以这就是我在这里问的原因(我读过应该在 SO 上问简单的 sql 问题,但我别无选择)。

假设我有 3 个表:posts,post_categoriescategories. 我正在实现某种带有过滤器的页面,我可以在其中按类别过滤帖子。用户可以选择多个类别。当他选择多个时,它们应该相加。我无法让它工作。我现在拥有的是简单的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()列表中至少有一个类别的帖子。

postgresql relational-division

2
推荐指数
1
解决办法
218
查看次数

标签 统计

postgresql ×1

relational-division ×1