![]() |
|
Модераторы: skyboy |
![]()
|
|
| IZ@TOP |
|
||||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: нет Всего: 73 |
Задача следующая: необходимо создать дерево с любым количеством вложений. Таблица выглядит так:
Допустим есть некое количество записей:
Так вот, как выбрать все записи по ссылке parentid пока в нем не встретится 0? -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
||||
|
|||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
Что-то мне подсказывает, что запросом ты не обойдешься. И MySQL такую рекурсию просто не потянет. Надо делать это на клиенте, что мало интересно. Но IMHO по-другому не получится.
Я помню был пример для MS SQL, но там была сохраненная процедура и использовались кое-какие штучки именно MS. |
|||
|
||||
| Nobody |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 25.8.2003 Где: Россия, Москва Репутация: нет Всего: 16 |
В MySQL одним запросом никак. На любой базе, где есть хранимые процедуры, делается в два счёта.
-------------------- |
|||
|
||||
| arial |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 772 Регистрация: 11.3.2003 Где: Архангельская обл . Репутация: нет Всего: 7 |
Вот пример из книги SQL за 24 часа:
И запрос:
Наводит на размышление. ;) -------------------- Есть люди, в которых живет Бог. Есть люди, в которых живет дьявол. А есть люди, в которых живут только глисты. (Ф. Раневская) |
||||
|
|||||
| Nobody |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 25.8.2003 Где: Россия, Москва Репутация: нет Всего: 16 |
arial
Хмм... Остроумно Правда таким образом можно выбирать только дерево целиком. Отдельную ветку выбрать не получится. -------------------- |
|||
|
||||
| boevik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1452 Регистрация: 31.5.2004 Где: Израиль Репутация: 2 Всего: 35 |
Где в этом запросе построение дерева? Просто выборка пар имен parent и его child names. Эту проблему надо решать рекурсией из проги с выбором сыновей определенного родителя. И погружаться дальше. Если кого заинтересует, есть пример на VB6 -------------------- Никогда не говори никогда |
|||
|
||||
| IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: нет Всего: 73 |
С рекурсией я и на РНР сам напишу. А вот интересно как у этого форума это работает? Тут ведь насколько я знаю тоже вложенность поддерживается?!
PS А если делать из проги, не скажется ли это на скорости, особенно если это делается для www....? -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
| nicka |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 11.6.2003 Репутация: нет Всего: 1 |
В Oracle например следующий запрос очень удобненько выбирает всю ветку
|
|||
|
||||
| IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: нет Всего: 73 |
nicka
К сожалению речь не об Оракле... -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MySQL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |