Necesitas usar HAVING
, no WHERE
.
La diferencia es:el WHERE
La cláusula filtra qué filas selecciona MySQL. Entonces MySQL agrupa las filas y agrega los números para su COUNT
función.
HAVING
es como WHERE
, solo sucede después el COUNT
se ha calculado el valor, por lo que funcionará como espera. Reescriba su 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)