我正在尝试创建一个报告工具来计算博客网站上与两个定义的分类 ID(3 和 11)都匹配的帖子数量。数据的结构使得每一行都有一个帖子 ID (object_id) 与一个分类 ID (term_taxonomy_id) 配对。帖子与多个分类法配对,因此 object_id 重复,不同的 term_taxonomy_id 在下一列。
这是我正在使用的表的一部分:
+-----------+------------------+
| object_id | term_taxonomy_id |
+-----------+------------------+
| 4070 | 11 |
| 4070 | 19 |
| 4074 | 3 |
| 4074 | 19 |
| 4076 | 3 |
| 4076 | 10 |
| 4076 | 11 |
| 4079 | 4 |
| 4079 | 11 |
| 4079 | 16 |
| 4081 | 3 |
| 4081 | 11 |
| 4081 | 20 |
| 4083 | 3 |
| 4083 | 4 |
| 4083 | 11 |
| 4083 | 16 |
| 4083 | 21 |
+-----------+------------------+
如果工作正常,上述表块的计数应为 3,计数 object_id 4076、4081 和 4083。
我可以使用此查询创建要计数的 object_ids 列表:
SELECT object_id
FROM test_term_relationships
WHERE test_term_relationships.term_taxonomy_id IN (3,11)
GROUP BY object_id
HAVING COUNT(*) > 1
...但我不知道如何计算它们。我从相关问题中尝试过的方法返回匹配 term_taxonomy_id 3 或 11 但不匹配两者的行数(在本例中为 9),或者它们返回三行“2”代替 object_id 到指示匹配的分类 ID 的数量 - 3 和 11。
我的问题:我应该使用什么查询来获得匹配 BOTH term_taxonomy_id 3 和 11 的帖子的正确计数?
提前致谢。