如何为我的online shop制作过滤引擎?
我的情况:我有 table
/ 存储的产品变体 / products_variants(id_product_variant,title,...)/ 存储的参数及其值 /参数(id_parameter,units,title,...)/ 变量和参数值之间的存储连接 / products_variants_parameters(parameter_id,product_id)
我需要这样做:用户选择 value1
, value2
为 parameter1
和 value2
为 parameter2
,所以我需要选择以下变体: value1
或 value2
为 parameter1
和 value2
为 parameter2
.
我试着这样做:
products_variants_parameters.parameter_id IN (value1, value2) AND
products_variants_parameters.parameter_id IN (value2)
但它返回一个空结果 . 如何更新它以使其正常工作?
示例数据:
products_variants [id_product_variant,title] {[1,Product 1],[2,Product 2],[3,Product 3]} parameters [id_parameter,title] {[1,颜色:红色],[2,颜色:蓝色],[3,大小:XXL],[4,大小:M]} products_parameters [product_id,parameter_id] {[1,1],[1,4],[2,1],[2,3],[ 3,2],[3,4]}
客户检查:
颜色: red
颜色: blue
尺码: M
==>所以我想要返回所有颜色为红色或蓝色且尺寸为M的产品 . 对于此示例数据产品:
1 - Product 1 (Red, M)
3 - Product 3 (Blue, M)
已解决:谢谢这个主题:How to filter SQL results in a has-many-through relation
1 回答
我想,您希望找到具有特定参数的所有产品(product_id) . 所以你用参数的 Headers 或id过滤,找到所有product_ids: