Вы должны использовать предложение GROUP BY
, чтобы правильно объединить комментарии с оператором JOIN
, чтобы связать две таблицы.
SELECT pr.press_release_subject, COUNT(*) AS CommentCount
FROM tbl_press_release pr
LEFT JOIN tbl_press_release_comment prc ON prc.press_release_id = pr.id
GROUP BY press_release_subject
ORDER BY CommentCount DESC
Объединение может не работать как есть, потому что я не знаю имен ваших столбцов.
Ваш текущий запрос, в основном, запрашивает каждую тему пресс-релиза и количество каждого отдельного комментария. Без GROUP BY
ваша СУБД не знает, как разделить счет.
GROUP BY
сообщает вашей СУБД, что агрегатные функции должны возвращать одну запись для каждого отдельного значения в указанных столбцах. Например, в приведенном выше запросе подсчитывается количество комментариев, для которых тема press_release_subject
. Если вы используете агрегатные функции (например, COUNT
, SUM
, AVG
и т. Д.), Любой регулярный столбец, который вы хотите вернуть рядом, должен быть указан в предложении GROUP BY
.