Так что у меня в этой таблице:Как получить идентификатор с наибольшим количеством детей
+----+-----------+----------+
| id | id_parent | id_child |
+----+-----------+----------+
| 1 | 10 | 9 |
| 2 | 11 | 9 |
| 3 | 12 | 11 |
| 4 | 13 | 11 |
| 5 | 14 | 13 |
+----+-----------+----------+
И я хотел бы, чтобы выбрать родителей с большинством детей. Очевидно, что если 9 ребенок 11 и 11 ребенок из 13, то 9 является дочерним 13. здесь, если я использую:
SELECT id_parent,COUNT(id_child) AS count
from dependency
GROUP BY id_parent ORDER BY count DESC;
Это дало бы 1 для каждого родителя. Есть ли способ сделать это, не добавляя больше записей в базу данных. (Это означает, что без добавления 9 детей из 13 ... и т. Д.) (Модификация схемы таблицы также может быть решением).
Является ли высота дерева фиксированной или может иметь родительское произвольное количество детей? –
Это совершенно случайно. И цифры могут действительно расти, чтобы стать огромными, поэтому я хочу, чтобы он был самым оптимизированным –