|
|
|
| Есть деревовидные данные
+----+-----------+-----------+
| id | parent_id | name |
+----+-----------+-----------+
| 1 | NULL | Фрукты |
| 2 | 1 | Яблоки |
| 3 | 2 | Зеленые |
| 4 | 2 | Красные |
| 5 | 1 | Цитрусовые |
| 6 | 5 | Апельсины |
| 7 | 5 | Бананы |
+----+-----------+-----------+
|
Выводим все данные
SELECT tab1.name AS naz1, tab.name as naz2, tab.name as naz3
FROM al_frut AS tab1
LEFT JOIN al_frut AS tab2 ON tab2.parent_id = tab1.id
LEFT JOIN al_frut AS tab3 ON tab3.parent_id = tab2.id
LEFT JOIN al_frut AS tab4 ON tab4.parent_id = tab3.id
WHERE tab1.id = 1;
|
получается вот так:
+------+-----------+--------+
| lvl1 | lvl2 | lvl3 |
+------+-----------+--------+
| Фрукты | Яблоки | Зеленые |
| Фрукты | Яблоки | Красные |
| Фрукты | Цитрусовые | Апельсины |
| Фрукты |Цитрусовые | Бананы |
+------+-----------+--------+
|
А необходимо вывести без повторений вот так:
+------+-----------+--------+
| lvl1 | lvl2 | lvl3 |
+------+-----------+--------+
| Фрукты | Яблоки | Зеленые |
| | | Красные |
| | Цитрусовые | Апельсины |
| | | Бананы |
+------+-----------+--------+
|
как так вывести? Нужно в выпадающий список вставить без повторений... | |
|
|
|
|
|
|
|
для: xpom
(20.01.2012 в 23:55)
| | А разве это возможно одним SQL сделать? А что же тогда будет в ответе БД в пустых ячейках? По моему это нужно уже в обработчике формировать. | |
|
|
|
|
|
|
|
для: xpom
(20.01.2012 в 23:55)
| | Это уже лучше на уровне прикладной программы делать, в запросе вам это будет сложно сделать. | |
|
|
|