Как бы вы написали MySQL-запрос, который ограничит результаты объединенной таблицы (или подвыбор, если это работает лучше), а также подсчитает количество элементов в объединенной таблице или таблицах?
Например, допустим, у вас было три таблицы: проекты, задачи и комментарии, где у проекта 0 или более задач, а у задачи 0 или более комментариев. Как бы вы ограничили число задач, возвращаемых на проект, до 3, а также возвращали бы общее количество задач на проект и комментариев на задачу?
Вот как я представляю, как выглядит набор результатов:
project_id, project_title, task_id, task_title, num_tasks, num_comments
------------------------------------------------------------------------
1, Project1, 1, Task1, 4, 3
1, Project1, 2, Task2, 4, 0
1, Project1, 3, Task3, 4, 9
2, Project2, 10, Task10, 20, 0
2, Project2, 11, Task11, 20, 0
2, Project2, 12, Task12, 20, 2
3, Project3, 20, Task20, 17, 5
3, Project3, 21, Task21, 17, 1
3, Project3, 22, Task22, 17, 2
Где «Project1», «Project2» и т. Д. Просто представляют заголовок проекта, а «Task1», «Task2» и т. Д. Представляют заголовок задачи.
В конечном итоге (после анализа результатов запроса) я хотел бы иметь возможность отображать что-то вроде этого:
Project1 (4 tasks)
Task1 (3 comments)
Task2 (0 comments)
Task3 (9 comments)
Project2 (20 tasks)
Task10 (0 comments)
Task11 (0 comments)
Task12 (2 comments)
Project3 (17 tasks)
Task20 (5 comments)
Task21 (1 comments)
Task22 (2 comments)
Я предполагаю, что это должно быть сделано с помощью подвыборов (что нормально), но я не могу понять, как это сделать, просто используя соединения, и у меня не хватает достаточно хорошей ручки для sub выбирает что-то подобное.