У меня есть схемы базы данных: [Id], [ParrentId], [ещё несколько таблиц]SQL получить самый низкий уровень детской и корневой узел
У меня есть иерархия, как:
1. a
2. aa
3. aaa_1
3. aaa_2
1. b
2. bb
1. c
2. cc
3. ccc_1
4. cccc
3. ccc_2
Я хочу (выберите * где X) => [X, младший ребенок]: [a, aaa_1] [a, aaa_2]; [Куб.см, сссс] и т.д.
я могу получить наименьшую ребенка с
SELECT t1.name FROM
category AS t1 LEFT JOIN category as t2
ON t1.category_id = t2.parent
WHERE t2.category_id IS NULL;
, но я не знаю, как присоединиться к нему с корневого узла.
Какие СУБД вы используете? Postgres? Oracle? –
Я бы предложил добавить поле, отражающее уровень иерархии. Затем используйте следующий SQL: SELECT name, max (level) FROM category WHERE parent = {category_id родителя} – ahPo