0

次の mysql クエリでは、括弧内のすべての機能を備えたすべての製品を選択しようとしています。明らかに機能 1 または機能 2 などを持つ製品を返す IN を使用しています... 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
4

1 に答える 1

4

これを最後に追加

having count(f.id) = 3

f.idこれにより、1 つまたは 2 つだけではなく、3 つの s を持つグループのみが生成されます。

句に3 を超えるf.ids があるin場合は、その値を拡張する必要があります。例:

where f.id in (1, 2, 3, 4, 5) 
group by p.productcode    
having count(f.id) = 5
于 2012-05-10T08:07:47.037 に答える