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)