MySql:选择类别id为2和3的所有帖子

MySql:选择类别id为2和3的所有帖子,mysql,sql,categories,posts,Mysql,Sql,Categories,Posts,我有以下两列数据库: posts id category id 1 2 2 1 1 3 3 3 3 2 4 5 我需要一个查询,当提取所有职位id的类别2和3 这意味着:id为1和3的帖子。要选择类别2和类别3中的所有帖子id: SELECT posts_id FROM posts WHERE categoryId IN (2, 3) GROUP BY posts_id

我有以下两列数据库:

posts id    category id
1           2
2           1
1           3
3           3
3           2
4           5
我需要一个查询,当提取所有职位id的类别2和3
这意味着:id为1和3的帖子。

要选择类别2和类别3中的所有帖子id:

SELECT posts_id
FROM posts
WHERE categoryId IN (2, 3)
GROUP BY posts_id
HAVING COUNT(distinct categoryId) = 2;
要仅选择仅与
类别_id=5
关联而不与任何其他类别关联的帖子id,请执行以下操作:

SELECT posts_id
FROM posts
GROUP BY posts_id
HAVING SUM(categoryId <> 5) = 0;
选择posts\u id
发帖
按职位分组\u id
具有总和(类别ID 5)=0;

查看一个包含10多种方法的问题(以及性能测试):非常感谢。。它帮了我的忙。我还有一个问题。。差不多是同一张桌子。。。如何仅选择仅与类别id 5关联而不与任何其他关联的帖子id。从类别id=5的帖子中选择帖子id;非常感谢你。。它帮了我的忙。我还有一个问题。。差不多是同一张桌子。。。如何仅选择仅与类别id 5关联而不与任何其他关联的帖子id。在第一个查询中,
select posts\u id,category\u id
应仅为
select posts\u id
,因为某些原因,第二个示例不起作用:(…我得到了与类别_id5关联的ID,但它们也与其他类别关联…@MiroslavVasilev:我再次更新了我的答案。现在它应该可以工作了。@ypercube是的,现在它工作得很好,再次感谢您的帮助
SELECT post_id, category_id
FROM posts
WHERE category_id IN (2, 3)
GROUP BY post_id
ORDER BY category_id;