mysql - 计算类别 A 和 B 中的项目 (MySQL)

标签 mysql sql count relational-division

我正在尝试改变一些东西,让它对我有用。我认为我的问题对于了解 SQL 的人来说很容易回答。我有下表(两列):

entry_id | cat_id
5        | 3
6        | 3
7        | 3
7        | 5
7        | 6
8        | 5
9        | 3
9        | 5

现在我想计算 cat_id 3 和 5 中的所有 entry_id(它们必须属于两个类别)。我该怎么做才能得到结果“2”(条目 7 和 9 的总和为 2)。

希望有人能帮忙。谢谢!

最佳答案

这个问题有时被称为Relational Division

SELECT  COUNT(*) totalCOunt
FROM
(
    SELECT  entry_id 
    FROM    tableName
    WHERE   cat_id IN (3, 5)
    GROUP   BY entry_id
    HAVING  COUNT(DISTINCT cat_id ) = 2
) s

关于mysql - 计算类别 A 和 B 中的项目 (MySQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15115550/

相关文章:

javascript - 使用 Javascript 在 Mozilla 和 IE 中返回 NaN 的日期

java - 在 Spring Boot 中没有外键的 Rest api 返回项

php - 考虑到时区差异,如何计算一天中的平均时间?

mysql - 为什么这个 BEFORE INSERT 触发器在 MySQL 中不起作用?

php - 使用元数据推送指向关注者的指针(MySQL 查询)

MySQL 使用 RLIKE 表达式删除查询

php - MySql如何通过过滤多列来限制多个数字?

PHP、PDO 计数在 mysql 上

mongodb - mongodb 中带有标签的文档 : getting tag counts

mysql - SQL Count() 列值