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]   

> Без описания
ninzzo
Отправлено: 09 Октября, 2015 - 03:52:32
Post Id


Частый гость


Покинул форум
Сообщений всего: 176
Дата рег-ции: Март 2013  


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




Доброго времени всем!

Есть табилца user:

id. name. parent_id:
1 user1 0
2 user2 1
3 user3 1
4 user4 2
5 user5 2
6 user6 5
7 user7 6


На этой основе я строю дерево через рекурсивную функцию

Получиться что user1 папа для user2, user3
user2 папа для user4, user5 и т.д.

Вот я имея id хочу узнать если ли у него во внуках другой id.

например для id = 1 будет ли внуком id = 7 ???
Судя по этой таблице так конечно будет. id7 -> id6 -> id5 -> id2 -> id1 = true

Вообщем как узнать если ли во внуках такой то id
и наоборот как узнать есть ли в дедах такой то id?!


п.с. тут попахивает рекурсией тоже но я не знаю как ею в mysql пользоваться.
 
 Top
Мелкий Супермодератор
Отправлено: 09 Октября, 2015 - 08:45:28
Post Id



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


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


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




ninzzo пишет:
п.с. тут попахивает рекурсией тоже но я не знаю как ею в mysql пользоваться.

Всё просто: никак. mysql не умеет не только рекурсивные, но и вообще CTE.
Ну если очень хочется, можете через хранимые процедуры написать.

Если такие запросы надо выполнять часто и быстро - меняйте схему на nested sets или materialized path.


-----
PostgreSQL DBA
 
 Top
ninzzo
Отправлено: 09 Октября, 2015 - 16:38:36
Post Id


Частый гость


Покинул форум
Сообщений всего: 176
Дата рег-ции: Март 2013  


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




Что ж. Спасибо.

Буду через ПХП при построении дерева проверять тогда.
Не нужно часто и быстро. Просто что бы при редактировании дед мог редактировать только свои потомков. Чужих нет.

(Отредактировано автором: 09 Октября, 2015 - 16:40:46)

 
 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