Один запрос для получения сообщений и подсчета их ответов - PullRequest
3 голосов
/ 26 июля 2011

У меня есть база данных mysql с двумя таблицами:

  • messages
  • message_answers

Я хочу получить все сообщения и количествоответы на каждый из них, например:

  • первое сообщение (10 ответов)
  • второе сообщение (5 ответов)

Возможно ли это с однимsql query?

Я пробовал запрос и подзапрос для подсчета, но я не знаю, как получить текущий идентификатор из основного запроса, чтобы наложить ограничение "WHERE" на подзапрос (например: "message_answers.message_id = messages.id ").

Спасибо, Себастьян

Ответы [ 2 ]

4 голосов
/ 26 июля 2011
SELECT m.message, COUNT(ma.answer_id) AS AnswerCount
    FROM messages m
        LEFT JOIN message_answers ma
            ON m.id = ma.message_id
    GROUP BY m.message
0 голосов
/ 26 июля 2011
select m.id, count(ma.id)
from messages m
join join message_answer ma on ma.id = m.message_id
group by 1
...