Возможно ли рекурсивно подсчитать количество проектов в категории одним запросом?
Есть две таблицы projects и categories. Каждый проект имеет category_id.
Каждая категория имеет parent_id указывающий на саму себя.
Есть необходимость подсчитать количество проектов в каждой категории включая потомков.
[
{
"name":"ivan",
"date":"2022-04-14T10:19:43",
"kurs":"1"
},
{
"name":"lena",
"date":"2022-04-10T10:22:41",
"kurs":"5"
},
{
"name":"misha",
"date":"2022-04-11T10:11:22",
"kurs":"3"
}
]
Во-первых, далеко не факт, что такие связи есть, сбор независимых данных в одном отчёте не самая большая экзотика.
Во-вторых, подобное объединение гарантированно приведёт к кратному увеличению количества выходных записей (join multiplying никто не отменял), а избавляться от частичных дубликатов - занятие не для слабонервных.
Ну и потом - а не пофиг ли? каждый подзапрос выполняется отдельно и независимо, просто результаты их работы кэшатся в одну кучу, которая потом выводится - итоговый запрос не имеет ни сортировки, ни чего-то ещё, так что объединённый набор дополнительно обрабатывать не требуется. К тому же есть шанс (впрочем, зависит от СУБД, причём почти наверняка это MySQL, и точной версии), что отдельные подзапросы могут выполняться параллельно.