mysql - 我应该使用什么而不是IN语句?

时间:2012-05-10 08:02:42

标签: mysql

在下面的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

1 个答案:

答案 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