我有一个这样的查询
SELECT `product_id`
FROM `attribute_value`
WHERE `spec_group_id` = 2
AND `product_id` = 1
AND `attribute_value` IN('samsung','56')
对于以下数据:
attribute_value_id attribute_id attribute_value product_id spec_group_id
1 1 samsung 1 2
2 2 55 1 2
3 5 door-in-door 1 2
只有当它的属性值与 samsung 和 55 都匹配时,我才需要获取产品 ID。如何编写选择查询?
在我的查询中,如果我将属性值更改为 56,那么它也会获得产品 ID。
您需要聚合和 HAVING 子句中的条件:
SELECT product_id
FROM attribute_value
WHERE spec_group_id = 2 AND attribute_value IN ('samsung', '56')
GROUP BY product_id
HAVING COUNT(*) = 2
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句