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)