Mysql 函数 count() 单独计算行数

Mysql function count() counts rows individually

我有以下查询,我想在其中获取总行数,但这似乎是单独计算的,这里是查询和结果

SELECT
     COUNT(pc.product_id)
FROM
    products as p
INNER JOIN product_categories as pc
ON p.product_id = pc.product_id AND pc.subcategory_id IN (77)   
GROUP BY pc.product_id
HAVING COUNT(pc.subcategory_id) = 1

结果是:

计数(pc.product_id)

1

1

1

...但应该是

计数(pc.product_id)

3

更新

上面的查询应该计算这个查询得到的产品数量

SELECT
    *
FROM
    products as p
INNER JOIN product_categories as pc
ON p.product_id = pc.product_id AND pc.subcategory_id IN ($sb_2)   
GROUP BY pc.product_id
HAVING COUNT(DISTINCT pc.subcategory_id) = $sb_count 

$sb_2 = 77,76;
$sb_count = how many values are in $sb_2;

77 and 76 are different subcategories ids but are common for some products

如果您知道另一种计算方法或进行其他查询...

SELECT
     COUNT(pc.product_id)
FROM
    products as p
INNER JOIN product_categories as pc
ON p.product_id = pc.product_id AND pc.subcategory_id IN (77)
HAVING COUNT(pc.subcategory_id) = 1

删除分组依据应该可以解决问题。

我设法通过以下查询计算行数。

"SELECT COUNT(*) as count FROM (SELECT
    *
FROM
  product_categories WHERE subcategory_id IN (77,76)   
GROUP BY product_id
HAVING COUNT(DISTINCT subcategory_id) = 2) as subc";
}