Я использую следующий MySQL для возврата списка постов и соответствующих им комментариев.
SELECT *
FROM forum_qa
JOIN user_profiles
ON user_id = forum_qa_author_id
LEFT JOIN (SELECT forum_cm_id,
forum_cm_author_id,
forum_qa_id_fk,
forum_cm_text,
FROM forum_cm
JOIN user_profiles
ON user_id = forum_cm_author_id) AS c
ON forum_qa_id = c.forum_qa_id_fk
WHERE forum_qa_parent_id = $forum_qa_id
Если я бегу
$data['num_answers'] = $query->num_rows();
Это позволяет мне получить количество возвращенных строк и передать массив моему контроллеру и просмотреть.
Но это возвращает все строк (сообщения + комментарии). Поэтому, если в 1 сообщении есть 10 комментариев, возвращается 10
.
Как сделать так, чтобы этот запрос учитывал только количество сообщений (т. Е. Возвращающих 1
), не включая подзапрос?
Каждый пост имеет уникальный идентификатор, сохраненный в forum_qa.forum_qa_id
Каждый комментарий имеет уникальный идентификатор, сохраненный в forum_cm.forum_cm_id
.
Спасибо за помощь - выложу больше кода при необходимости.