Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вывод данных иерархической структоры
 
 автор: xpom   (20.01.2012 в 23:55)   письмо автору
 
 

Есть деревовидные данные


+----+-----------+-----------+
| 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   |
+------+-----------+--------+
| Фрукты | Яблоки | Зеленые |
|               |                 | Красные |
|               | Цитрусовые  | Апельсины  |
|                |                        | Бананы |
+------+-----------+--------+

как так вывести? Нужно в выпадающий список вставить без повторений...

  Ответить  
 
 автор: Sfinks   (21.01.2012 в 00:56)   письмо автору
 
   для: xpom   (20.01.2012 в 23:55)
 

А разве это возможно одним SQL сделать? А что же тогда будет в ответе БД в пустых ячейках? По моему это нужно уже в обработчике формировать.

  Ответить  
 
 автор: cheops   (21.01.2012 в 11:52)   письмо автору
 
   для: xpom   (20.01.2012 в 23:55)
 

Это уже лучше на уровне прикладной программы делать, в запросе вам это будет сложно сделать.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования