gpt4 book ai didi

php - mysql count 正在计算所有记录,而不是使用 IN 语句过滤计数

转载 作者:行者123 更新时间:2023-11-29 13:53:55 24 4
gpt4 key购买 nike

我只是摆弄一些sql并试图获得想要的结果,但我只是没有完全得到我想要的结果。我有一个产品表和一个产品过滤器表,它们之间存在关系,并且产品过滤器表与过滤器值表相关。在我的 sql 示例中,它打印出结果,但我似乎无法仅获取顶层的产品计数,它打印出 3 而不是 2

这是 result set 的示例这是 count 的示例

所以我想要的是获得 2 个产品的准确数量

SELECT COUNT(*)
FROM
(SELECT x.product_id,x.department_id,x.title, pi.image_medium
FROM products x
INNER JOIN product_images pi on pi.product_id = x.product_id
WHERE x.department_id = 3
)p
INNER JOIN product_filters pf on pf.product_id = p.product_id
LEFT JOIN filters f on f.filter_id = pf.filter_id
RIGHT JOIN filter_values fv on fv.filter_value_id = pf.filter_value_id
WHERE p.department_id = 3 AND pf.filter_value_id IN(1,3)

最佳答案

SELECT COUNT(*) 更改为 SELECT COUNT(DISTINCT p.product_id)

如果您想查看正在计数的结果集,请将 COUNT(*) 替换为 *。对于 Samsung Tablet 2,这会产生 2 行,因为它有两个与 WHERE 子句匹配的 product_filters 行。

关于php - mysql count 正在计算所有记录,而不是使用 IN 语句过滤计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16204880/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com