gpt4 book ai didi

php - SQL Count + 3 join + multiple where in one query - 如何编写 propen IF?

转载 作者:行者123 更新时间:2023-11-28 23:20:21 25 4
gpt4 key购买 nike

我正在尝试从 mysql 数据库中获取过滤后的数据,但我在使用计数函数进行多重连接时遇到了问题。

基于用户操作(价格范围 slider ;选中的复选框)查询应显示不同的产品并通过 ajax 刷新过滤器(更新与当前过滤器匹配的产品数量);

这是我的查询,用于显示过滤器并计算我商店中床位的数量:

SELECT COUNT(id_product) as productMatched,
product_to_features.id_feature_value,
feature_value_langs.name,
feature_value_langs.id_feature_value,
products.active
FROM product_to_features
LEFT JOIN feature_value_langs
ON product_to_features.id_feature_value =
feature_value_langs.id_feature_value
LEFT JOIN products
ON product_to_features.id_product = products.id
WHERE id_feature = " . $row['idFeature'] . "
AND products.active = 1
GROUP BY product_to_features.id_feature_value

结果如下:

Bed size: 80x200(3) 140x200(1) 160x200(2) 180x200(1)

问题是查询会计算整个页面中具有床尺寸特征的产品)(我们有不同类型的床,它会检查所有的产品,而不是当前的床类别)。我需要的是 IF 在 sql 中允许我检查产品是否匹配当前家具类型中的多个选中选项。

Db what's contain features attached to product(例如 54 - 床尺寸 - 值 15981 尺寸:80x200

SELECT *  FROM `product_to_features` WHERE `id_feature` = 54

id id_feature id_product id_feature_value
1371279 54 33434 15981
1385494 54 23421 16011
1385600 54 23422 16012
1385653 54 23423 16013
1385706 54 23426 16012

我需要什么数据:- 当用户检查床尺寸 80x200cm 时(查询应采用 id_feature_value = 15981 的产品- 如果用户属于主床类别 - 查询还应检查 id_feature_value = 1483(这意味着 - 床主要类别)

当然,如果用户选择更多选项,查询应该使用更多的 sql IF。

感谢您的帮助!

最佳答案

尝试将 COUNT(id_product) 更改为 COUNT(DISTINCT id_product)

LEFT 有什么原因吗?即使映射表有一行,也可能缺少 langs 和 products 吗?

参见 this有关 many:many 表设计的提示。

关于php - SQL Count + 3 join + multiple where in one query - 如何编写 propen IF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41980324/

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