Devi usare HAVING , non WHERE .
La differenza è:il WHERE la clausola filtra le righe selezionate da MySQL. Allora MySQL raggruppa le righe e aggrega i numeri per il tuo COUNT funzione.
HAVING è come WHERE , succede solo dopo il COUNT il valore è stato calcolato, quindi funzionerà come previsto. Riscrivi la tua sottoquery come:
( -- where that pid is in the set:
SELECT c2.pid -- of pids
FROM Catalog AS c2 -- from catalog
WHERE c2.pid = c1.pid
HAVING COUNT(c2.sid) >= 2)