Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL :utilisation incorrecte de la fonction de groupe

Vous devez utiliser HAVING , pas WHERE .

La différence est :le WHERE la clause filtre les lignes sélectionnées par MySQL. Alors MySQL regroupe les lignes et agrège les nombres pour votre COUNT fonction.

HAVING est comme WHERE , seulement cela arrive après le COUNT valeur a été calculée, donc cela fonctionnera comme prévu. Réécrivez votre sous-requête comme :

(                  -- 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)