这个问题在这里已经有答案了:
在不同的行上选择满足不同条件的值(6个答案)
两年前关门了。
id | product_id | option | option value
-------------------------------------------
1 | 3 | size | m
2 | 3 | color | red
3 | 3 | brand | apple
4 | 5 | color | red
5 | 5 | weight | 16m
6 | 6 | size | m
我得到两个产品 product_id [3,5]
现在我用期权价值过滤这个产品
我的过滤器 option_value [m]
在这里,
m option_value
存在于 product_id 3
但不存在于 product_id 5
,所以只显示 product_id 3
再次过滤 option_value [red]
在这里,
red option_value
存在于 product_id 3 and 5
,所以我所有的产品都在展出 product_id 3,5
最后,过滤 option_value [m,red]
在这里, m
以及
red option_value
存在于 product_id 3
但是
m option_value
存在于 product_id 5
以及
red option_value
不存在于 product_id 5
,所以将product\u id显示为空,这意味着,我得到的选项值与filter相同的产品 option_value
如何编写这个mysql查询?
1条答案
按热度按时间ukxgm1gy1#
我的筛选选项\u值[m]这里,m选项\u值存在于产品\u id 3中,但不存在于产品\u id 5中,因此只显示产品\u id 3
查询
结果
请参见演示http://sqlfiddle.com/#!2008年9月17日
同样,在这里过滤option\u value[red],red option\u value出现在product\u id 3和5中,所以我得到的所有产品都是show product\u id 3,5
查询
结果
请参见演示http://sqlfiddle.com/#!9月17日e393/9