Eu zombei de alguns dados de tabela para testar minha consulta.
WHERE
as cláusulas devem ser posicionadas após JOIN
s. Você também está um pouco ambíguo sobre a comparação de COUNT
E 5
-- se você quiser mais de 5 então >5
, se você quiser 5 ou mais então >=5
. SQL:(Demonstração do SQLFiddle )
SELECT a.user_id,a.username,COUNT(b.user_id)
FROM users a
INNER JOIN articles b ON a.user_id=b.user_id
WHERE a.type=3
GROUP BY a.user_id
HAVING COUNT(b.user_id)>5
ORDER BY RAND()
LIMIT 4