r.category
находится в левой таблице.В нем не будет значений null
(из-за несоответствия записей) после Left Join
.Вам нужно сосчитать rc.id
, чтобы он считал ноль, если в самой правой таблице нет соответствующих записей.
Кроме того, вы должны упомянуть все столбцы select
(кроме агрегированных выражений) вГруппировка по.
Также вам нужно выбрать r.category
в самой левой таблице.И я изменил псевдоним на cat_id
, чтобы сделать его однозначным.
Попробуйте:
SELECT
r.category AS cat_id,
rc.name AS categoryName,
count(rc.id) AS raveCount
FROM
rave r
LEFT JOIN
rave_category rc ON (r.category = rc.id)
WHERE
r.sent_by = 1
GROUP BY cat_id,
categoryName