|
MySQL.RU - Webboard
Вернуться
Вопрос для гуру.Выборка древовидной структуры (Евгений) 24/02/2005 - 16:36:37
Re: Вопрос для гуру.Выборка древовидной структуры (Dinky) 24/02/2005 - 19:06:17
Re: 2 Dinky (Евгений) 24/02/2005 - 20:25:00
Re: 2 Dinky (Dinky) 24/02/2005 - 20:58:03
Re: 2 Dinky (Евгений) 24/02/2005 - 21:35:23
Re: 2 Dinky (DNick) 25/02/2005 - 01:28:11
Re: 2 Dinky (Dinky) 25/02/2005 - 01:46:35
Re: А не проще ли хранить путь целиком? (Dubrovsky) 25/02/2005 - 09:08:18
Re: 2 DNick (Евгений) 25/02/2005 - 11:02:43
Re: А не проще ли хранить путь целиком? (Евгений) 25/02/2005 - 11:06:23
Re: А не проще ли хранить путь целиком? (Dubrovsky) 25/02/2005 - 15:27:00
Re: А не проще ли хранить путь целиком? (Евгений) 25/02/2005 - 20:34:11
Re: 2 DNick (Dinky) 25/02/2005 - 22:41:40
Re: 2 DNick (Евгений) 26/02/2005 - 11:08:15
Re: 2 Евгений (Dinky) 27/02/2005 - 07:19:19
Re: поправка (2 Евгений) (Dinky) 27/02/2005 - 07:29:23
Re: короче! (2 Евгений) (Dinky) 27/02/2005 - 07:42:16
Re: короче! (2 Евгений) (Евгений) 27/02/2005 - 19:03:46
Re: короче! (2 Евгений) (cooler13) 28/02/2005 - 00:34:16
Re: короче! (2 Евгений) (Dinky) 28/02/2005 - 02:33:37
Re: 2Dinky (2 Евгений) (Евгений) 28/02/2005 - 14:37:54
From: Евгений - 24/02/2005 - 16:36:37
Subject:Вопрос для гуру.Выборка древовидной структуры
-----------------
Имеется таблица, в которой хранится некая древовидная структура, например, файловая система, состоящая из папок, которые, в свою очередь, могут содержать другие папки. Таблица состоит из полей
ID - уникальный идентификатор папки
Parent - идентификатор родительской папки
Name - имя папки
Level - уровень вложенности
Пример:
+----+--------+--------------------------+-------+
! ID ! Parent ! Name ! Level !
+----+--------+--------------------------+-------+
! 1 ! 0 ! Soft ! 0 !
! 2 ! 1 ! OS ! 1 !
! 3 ! 1 ! Games ! 1 !
! 4 ! 1 ! Programming ! 1 !
! 5 ! 2 ! Linux ! 2 !
! 6 ! 2 ! Windows ! 2 !
! 7 ! 3 ! HalfLife ! 2 !
! 8 ! 3 ! Doom3 ! 2 !
! 9 ! 4 ! PHP ! 2 !
! 10 ! 4 ! MySQL ! 2 !
+----+--------+--------------------------+-------+
Эта таблица соответствует дереву
Soft
!
+------------------+--------------+
! ! !
OS Games Programming
! ! !
+---+---+ +--+----+ +--+--+
! ! ! ! ! !
Linux Windows HalfLife Doom3 PHP MySQL
Задача: зная ID папки одним запросом получить "путь" к этой папке.
Например, задав ID=8 получить след таблицу
+----+--------+--------------------------+-------+
! ID ! Parent ! Name ! Level !
+----+--------+--------------------------+-------+
! 8 ! 3 ! Doom3 ! 2 !
! 3 ! 1 ! Games ! 1 !
! 1 ! 0 ! Soft ! 0 !
+----+--------+--------------------------+-------+
Я попытался сделать это следующим образом
SET @pID:=8;
SELECT *,(@pID:=Parent) FROM mytable WHERE ID=@pID ORDER BY Level DESC;
Но, почему-то, MySQL возвращает только одну строку:
+----+--------+--------------------------+-------+
! ID ! Parent ! Name ! Level !
+----+--------+--------------------------+-------+
! 8 ! 3 ! Doom3 ! 2 !
+----+--------+--------------------------+-------+
В чем ошибка?
И возможно ли, в принципе, решить подобную задачу. Может есть идеи как по-другому реализовать структуру таблицы?
Подскажите, пожалуйста.
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
20457
|
|