В настоящее время я пытаюсь получить все материалы от одного пользователя вместе со всеми комментариями по конкретной заявке. То, как я это делаю, крайне неэффективно (запрос внутри цикла).
Мне сказали использовать Group By, но я не уверен, как заставить его работать должным образом.
Первый запрос для выбора всей информации о отправке:
SELECT
submissions.user_id,
submissions.id,
submissions.quote,
submissions.filename,
submissions.date_added,
submissions.views
FROM
`submissions`
WHERE
submissions.user_id = ?
ORDER BY
submissions.date_added
DESC
Второй (для получения количества комментариев):
SELECT
count(id) AS `comments`
FROM
`comments`
WHERE
submission_id = '{$subId}'
Это работает, но так как они станут медленными, поэтому я попытался придумать это, но не уверен, как правильно его выполнить.
SELECT
submissions.user_id,
submissions.id,
submissions.quote,
submissions.filename,
submissions.date_added,
submissions.views,
COUNT(comments.id) as `comment`
comments.submission_id
FROM
submissions
LEFT JOIN
comments
ON
submissions.id=comments.submission_id
WHERE
submissions.user_id = ?
GROUP BY comment
Любые предложения о том, как подойти к этому? Причина, по которой я изначально не объединял первые два запроса, заключается в том, что count всегда будет возвращать одну строку для всего запроса.