Du skal bruge HAVING , ikke WHERE .
Forskellen er:WHERE klausul filtrerer hvilke rækker MySQL vælger. Så MySQL grupperer rækkerne og samler tallene for din COUNT funktion.
HAVING er ligesom WHERE , kun det sker efter COUNT værdien er blevet beregnet, så det fungerer, som du forventer. Omskriv din underforespørgsel som:
( -- 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)