![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин Подтвердите свой е-майл
Регистрация: 20.11.2007
Сообщений: 500
|
![]()
Есть таблица такой структуры:
Код:
Известен id (ветки, корня, листочка - не важно) и по нему надо извлечь всю ветку, например по id = 3 надо получить: Код:
Как это сделать с помощью одного sql запроса? Нужно использовать какие-то рекурсивные запросы? Или подзапросы? Или что-то ещё? Запрос должен выполняться в mysql. Больше спасибо за помощь. Последний раз редактировалось Никки; 13.03.2012 в 21:14. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Копать в сторону рекурсивніх хранимых процедур и ссылочка http://www.sql.ru/forum/actualthread...id=6&tid=27688
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#3 |
Форумчанин Подтвердите свой е-майл
Регистрация: 20.11.2007
Сообщений: 500
|
![]()
В общем в mysql с этим какая то проблема. И у меня только 2 выхода:
1) делать всё с помощью языка программирования, посылая несколько запросов - долгое время извлечения дерева 2) добавить 2 поля в таблицу и по ним выбирать дерево, тогда извлечение будет быстрым, а вот чтобы вставить ветку нужно будет все индексы у следующих записей передвинуть. т.е. тут вставка будет долгой... И вот кажется придумался самый оптимальный вариант: 3) добавить в каждую поле three_id и извлекать всё дерево по нему! ) Последний раз редактировалось Stilet; 14.03.2012 в 22:48. |
![]() |
![]() |
![]() |
#4 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]() Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
|
![]() |
![]() |
![]() |
#5 |
Форумчанин Подтвердите свой е-майл
Регистрация: 20.11.2007
Сообщений: 500
|
![]()
не знаю... я в общем уже сделал несколько запросов и переборку в коде. Всего раза в 2-3 дольше получается... но всё равно быстро.
Если будут большие нагрузки потом переделаю. |
![]() |
![]() |
![]() |
#6 | |
C++ hater
Старожил
Регистрация: 19.07.2009
Сообщений: 3,333
|
![]()
2Аватар
Цитата:
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
|
![]() |
![]() |
![]() |
#7 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]() Цитата:
![]()
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
|
![]() |
![]() |
![]() |
#8 |
Новичок
Джуниор
Регистрация: 22.03.2012
Сообщений: 1
|
![]()
Це – рак легенів, злоякісна пухлина, – повідомив власкор ЗІКу.
Андрієві лише 23 роки. Він – життєрадісний і доброзичливий, завжди готовий прийти на допомогу. Кілька місяців юнака лікували від плевриту, провели дві операції. Однак днями медики встановили страшний діагноз, який згодом підтвердили у столичній лабораторії – аденокарцинома правої легені. Юнак потребує дуже дорогого лікування (у тому числі й за кордоном), а таких коштів у сім’ї Андрія немає. Тому родина просить усіх, кому не байдужа доля молодої людини, допомогти. Ось єдині реквізити для перерахунку коштів(lдопоможіть чим можете):webmoney WMID: 200235489688 R270406892617 Z431134896206 |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Рекурсивный поиск | zumm | Общие вопросы Delphi | 7 | 01.11.2010 22:47 |
C# - Рекурсивный метод | Ronnie | Помощь студентам | 2 | 10.06.2010 08:30 |
рекурсивный алгоритм. | Nelson1992 | Помощь студентам | 9 | 21.03.2010 12:09 |
Рекурсивный алгоритм | SVM | Общие вопросы C/C++ | 7 | 13.11.2009 09:24 |
Рекурсивный SQL запрос | ADSoft | SQL, базы данных | 5 | 02.06.2008 16:55 |