Sie müssen HAVING
verwenden , nicht WHERE
.
Der Unterschied ist:das WHERE
-Klausel filtert, welche Zeilen MySQL auswählt. Dann MySQL gruppiert die Zeilen zusammen und aggregiert die Zahlen für Ihren COUNT
Funktion.
HAVING
ist wie WHERE
, nur passiert es nach der COUNT
Der Wert wurde berechnet, sodass er wie erwartet funktioniert. Schreiben Sie Ihre Unterabfrage wie folgt um:
( -- 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)