Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Выбор одной ветки из таблицы с древовидной структурой

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Возможно ли одним запросом?
Uchkuma
Отправлено: 19 Августа, 2010 - 21:24:36
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


Помог: 6 раз(а)




Типовая ситуация. Элементы в таблице имеют древовидную структуру и связаны по parent=>id.
Возможно ли как-то одним запросом, указав родителя, вытащить всю его ветку?
Интуиция подсказывает, что нет. Просто хотел убедиться.
Понятно, что можно вытащить ветку запросами в цикле while или вытащить все элементы одним запросом и сформировать ветку перебором foreach.
Известны также минусы этих способов при большом количестве вложенности и общем количестве элементов. Отсюда и вышезаданный вопрос.
 
 Top
JustUserR
Отправлено: 20 Августа, 2010 - 20:45:44
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Uchkuma пишет:
Возможно ли как-то одним запросом, указав родителя, вытащить всю его ветку?
Интуиция подсказывает, что нет. Просто хотел убедиться
Для реализации выборки структур по стороны сервера БД которые получаются путем использования сложного запроса - можно использовать стандарт PL/SQL и реализовать требуемую задачу с использовать собственных процедур Кроме того акой метод должен работать более эффективно чем предварительное копирование информации на сервер приложений и работа с ними уже на его стороне - ведь сокращается время на передачу данных по каналу - а также сервер БД имеет прямой и быстрый доступ к информации по внутренним эффективным алгоритмам и поэтому реализация локальных выборок должна быть такой же


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Uchkuma
Отправлено: 21 Августа, 2010 - 10:41:13
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


Помог: 6 раз(а)




JustUserR, можете натолкнуть на тему по созданию собственных процедур?
Может ли это быть выполнимо в mysql на виртуальном хостинге?
 
 Top
JustUserR
Отправлено: 22 Августа, 2010 - 01:34:53
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Uchkuma пишет:
JustUserR, можете натолкнуть на тему по созданию собственных процедур?
Может ли это быть выполнимо в mysql на виртуальном хостинге?
Хотя поставщики различных СУБД предоставляют различную функциональность в зависимости от версии и комплектабельности программ - но сейчас эти отличия проявимы при работе с особенно специфическими функциями или приложенями с большой назрузкой - и те опции которые используются для широкого круга действий сейчас доступны в каждой СУБД
Для того чтобы в mysql реализовать создание собственных серверных процедур для обеспечения прямого - и более эффективного доступа к информации с использованием внутренних алгоритов - необходимо иметь пользователя БД с необходимыми правами типа CREATE ROUTINE и ALTER ROUTINE Более подробно о создании пользовательский SQL-фукнций вы можете почитать в официальной документации здесь http://dev[dot]mysql[dot]com/doc/refman/[dot][dot][dot]e-procedure[dot]html - кроме того при работе с СУБД через обычные SQL-запросы придется применять дополнительное экранирование данных по операционнм разделителям http://dev[dot]mysql[dot]com/doc/refman/[dot][dot][dot]ms-defining[dot]html
Можете также посмотреть дополнительную литературу по этому вопросу http://www[dot]all-ebooks[dot]com/main/b[dot][dot][dot]es/mssql/page/4/


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Uchkuma
Отправлено: 22 Августа, 2010 - 09:20:29
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


Помог: 6 раз(а)




Спасибо! Вот на русском нашел Хранимый код MySQL: Процедуры и Функции, может кому понадобится.
 
 Top
JustUserR
Отправлено: 23 Августа, 2010 - 15:54:09
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Uchkuma пишет:
Спасибо! Вот на русском нашел Хранимый код MySQL: Процедуры и Функции, может кому понадобится
Пожалуйста! Кстати приведенная вами статья является также интересной - и особенно полезной тем что в ней приведен готовый SQL-код для работы с древесными структурам на основе которого можно построить требуемую выборку


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB