Musíte použít HAVING
, nikoli WHERE
.
Rozdíl je v tom:WHERE
klauzule filtruje, které řádky MySQL vybírá. Potom MySQL seskupuje řádky dohromady a agreguje čísla pro váš COUNT
funkce.
HAVING
je jako WHERE
, stane se to pouze po COUNT
hodnota byla vypočtena, takže to bude fungovat, jak očekáváte. Přepište svůj dílčí dotaz 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)