在下面的mysql查询中,我正在尝试选择括号中具有所有功能的所有产品。我正在使用IN显然返回具有功能1或功能2等的产品......我应该使用什么而不是IN?
SELECT *, f.name as feature, p.productcode as productcode, p.name as name
from product p
left join productfeatures pf on p.productcode = pf.productcode
left join features f on pf.featureid = f.id
where f.id in (1, 2, 3)
group by p.productcode
答案 0 :(得分:4)
将此添加到最后
having count(f.id) = 3
这样只会产生3 f.id
s而不只是1或2的组。
如果您的f.id
子句中有3 in
个以上,则需要扩展该值。例如:
where f.id in (1, 2, 3, 4, 5)
group by p.productcode
having count(f.id) = 5