Musisz użyć HAVING
, a nie WHERE
.
Różnica jest taka:WHERE
filtry klauzul, które wiersze wybiera MySQL. Wtedy MySQL grupuje wiersze i agreguje liczby dla Twojego COUNT
funkcja.
HAVING
jest jak WHERE
, tylko dzieje się to po COUNT
wartość została obliczona, więc będzie działać zgodnie z oczekiwaniami. Przepisz swoje podzapytanie jako:
( -- 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)