Você precisa usar
HAVING
, não WHERE
. A diferença é:o
WHERE
A cláusula filtra quais linhas o MySQL seleciona. Então O MySQL agrupa as linhas e agrega os números para seu COUNT
função. HAVING
é como WHERE
, só que acontece depois o COUNT
valor foi calculado, então funcionará como você espera. Reescreva sua subconsulta como:( -- 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)