Du måste använda HAVING
, inte WHERE
.
Skillnaden är:WHERE
klausul filtrerar vilka rader MySQL väljer. Då MySQL grupperar raderna och aggregerar siffrorna för din COUNT
funktion.
HAVING
är som WHERE
, bara det händer efter COUNT
värdet har beräknats, så det kommer att fungera som du förväntar dig. Skriv om din underfråga som:
( -- 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)