按选项过滤产品

茨维坦

我有以下数据库结构来存储产品选项。

D B

现在我有问题要过滤掉只匹配给定选项的产品。首先我做了 WHERE option_id IN(选项数组),但这会给我提供与任何选项匹配的产品,这不是解决方案。例如,用户只想过滤出具有给定材料、颜色和尺寸的产品。如果我做 WHERE option_id = 4 AND option_id = 6 例如我什么也得不到。

这是我的查询:

SELECT DISTINCT p.id AS id,
                ...
FROM products p
LEFT JOIN product_categories pc ON p.id = pc.product_id
LEFT JOIN product_images pi ON p.id = pi.product_id
LEFT JOIN product_options po ON p.id = po.product_id
WHERE p.product_active = 1
  AND po.option_id = 1 // only to get the idea
GROUP BY id
ORDER BY id DESC
LIMIT 0,
      12

只是提一下它是 PHP 应用程序,用户从带有或不带有多个属性的 select 元素中选择选项。

如何实现这一点?

戈登·利诺夫

您可以使用having

SELECT p.id AS id,  ...
FROM products p JOIN
     product_categories pc
     ON p.id = pc.product_id LEFT JOIN
     product_images pi
     ON p.id = pi.product_id JOIN
     product_options po
     ON p.id = po.product_id
WHERE p.product_active = 1 AND
      po.option_id IN (4, 6)
GROUP BY p.id
HAVING COUNT(DISTINCT po.option_id) = 2
ORDER BY p.id DESC
LIMIT 0, 12;

HAVING子句指定给定id有两个匹配选项。由于该WHERE条款,这些是您唯一关心的两个选项。

我没有改变您的方法(您没有提供完整的查询),但是您正在按照不同的维度进行连接——类别、图像和选项。这会为每个产品创建一个笛卡尔积,这通常不是此类查询的最佳方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从具有自定义选项的产品集合中过滤产品?

来自分类Dev

MySQL产品过滤器具有多个选项

来自分类Dev

MySQL查询来检索按过滤器(属性)分类的产品

来自分类Dev

在Magento中按多个类别过滤产品

来自分类Dev

在magento网站中按年龄过滤产品

来自分类Dev

按产品类型查询/过滤woocommerce产品

来自分类Dev

Wordpress使用数字比较按价格过滤产品

来自分类Dev

按自定义属性对象过滤WooCommerce产品

来自分类Dev

在magento中按具有类别ID的属性下拉选项值过滤产品

来自分类Dev

如何使用PHPUnit的--filter选项按“结尾为”进行过滤?

来自分类Dev

WooCommerce:按产品属性词过滤管理订单

来自分类Dev

使用多个选项按字段过滤查询集

来自分类Dev

在Django中按类别过滤产品

来自分类Dev

在WooCommerce中的WC_Product_Query上按名称“ LIKE”过滤产品

来自分类Dev

在WooCommerce WC_Product_Query中按产品属性术语过滤

来自分类Dev

使用WooCommerce按价格范围过滤产品wc_get_products

来自分类Dev

WooCommerce:按产品属性词过滤管理订单

来自分类Dev

Magento产品集合过滤

来自分类Dev

按属性的属性过滤选项

来自分类Dev

Wordpress使用数字比较按价格过滤产品

来自分类Dev

Woocommerce按属性过滤产品

来自分类Dev

淘汰产品过滤

来自分类Dev

如何使用PHPUnit的--filter选项按“结尾为”进行过滤?

来自分类Dev

R:Google Analytics MCF-按产品过滤

来自分类Dev

根据产品类别按价格过滤

来自分类Dev

jQuery 使用多选选项按颜色过滤数据

来自分类Dev

基于多个控件或按模型过滤按选项

来自分类Dev

产品过滤器使用 javascript/vue 按最高或最低排序

来自分类Dev

如何直接从 elasticsearch 获取按字段过滤的选项?

Related 相关文章

热门标签

归档