Макетирах някои таблични данни, за да тествам заявката си. WHERE
клаузите трябва да се позиционират след JOIN
с. Вие също сте малко двусмислени относно сравнението на COUNT
И 5
-- ако искате повече от 5, тогава >5
, ако искате 5 или повече, тогава >=5
.
SQL:(Демо на 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