У меня есть таблица MySQL, как этотMySQL запрос для отступа ребенка и группы все Чайлдс
id Category parent
2 Garments 12
3 Gents Garments 2
4 Sarees 2
5 Bridal Sarees 4
6 IT 12
7 IT Hardware 6
8 IT Software 6
9 Web Design 8
10 Web Based Solution 8
11 E-Commerce Solution 9
12 root NULL
Использование MySQL Query
SELECT t1.category AS lev1, t2.category as lev2, t3.category as lev3,
t4.category as lev4
FROM categories AS t1
LEFT JOIN categories AS t2 ON t2.parent = t1.id
LEFT JOIN categories AS t3 ON t3.parent = t2.id
LEFT JOIN categories AS t4 ON t4.parent = t3.id
WHERE t1.category = 'root';
Я могу получить этот результат
lev1 lev2 lev3 lev4
root Garments Gents Garments NULL
root Garments Sarees Bridal Sarees
root IT IT Hardware NULL
root IT IT Software Web Design
root IT IT Software Web Based Solution
Теперь я не смог найти способ получить значения в одном столбце в дереве, подобном структуре. пример
root
--Garments
----Gents Garments
----Sarees
--IT
----IT Hardware
----IT Software
------Web Design
------Web Based Solution
Вопрос изменен с помощью следующего запроса:
я частично достигнут результат, полученный выше, но сталь нуждается в надлежащей группировки, используя следующий запрос
SELECT distinct t1.category AS category
FROM categories AS t1
LEFT JOIN categories AS t2 ON t2.parent = t1.id
LEFT JOIN categories AS t3 ON t3.parent = t2.id
LEFT JOIN categories AS t4 ON t4.parent = t3.id
WHERE t1.category = 'root'
union
SELECT distinct concat('--', t2.category) as category
FROM categories AS t1
LEFT JOIN categories AS t2 ON t2.parent = t1.id
LEFT JOIN categories AS t3 ON t3.parent = t2.id
LEFT JOIN categories AS t4 ON t4.parent = t3.id
WHERE t1.category = 'root'
union
SELECT distinct concat('----', t3.category) as category
FROM categories AS t1
LEFT JOIN categories AS t2 ON t2.parent = t1.id
LEFT JOIN categories AS t3 ON t3.parent = t2.id
LEFT JOIN categories AS t4 ON t4.parent = t3.id
WHERE t1.category = 'root'
union
SELECT distinct concat('------', t4.category) as category
FROM categories AS t1
LEFT JOIN categories AS t2 ON t2.parent = t1.id
LEFT JOIN categories AS t3 ON t3.parent = t2.id
LEFT JOIN categories AS t4 ON t4.parent = t3.id
WHERE t1.category = 'root'
Результат я получаю
корень
--Доборы
--Оно
---- Мужские одежды
---- Sarees
---- IT Hardware
---- IT Software
------ Люкс сари
- ---- веб-дизайн
------ Web Based Solution
Но я хочу, чтобы результат, как
корень
--Garments
---- Мужские одежды
---- Sarees
------ Люкс сари
--Оно
---- IT Hardware
---- IT Software
------ Веб-дизайн
------ Web Основанный на решении
Это то, что вы должны обращаться в своем презентационном уровне. –