Antonchik
@Antonchik
Программирую на HTML

Как написать запрос?

Здравствуйте. Есть табличка такой структуры |id|parent_id| parent_id ссылается на id в этой же таблице. Мне нужно достать все дочерние элементы, и все дочерние элементы дочерних элементов, отталкиваясь от родителя. Как это можно сделать?
  • Вопрос задан
  • 353 просмотра
Пригласить эксперта
Ответы на вопрос 2
Melkij
@Melkij
PostgreSQL DBA
Никак.
Глупый mysql не умеет рекурсивные запросы.

на выбор:
- меняете структуру хранения. nested sets или материализованный путь, например
- вытягиваете всё на приложение и строите там
- делаете МНОГО запросов
- пишете хранимку, которая будет делать много запросов
- если вложенность известна - то через n джойнов можно.
Ответ написан
ThunderCat
@ThunderCat Куратор тега MySQL
{PHP, MySql, HTML, JS, CSS} developer
Не имейте себе мозг, селект все и рекурсивной функцией строим ветку, в идеале готовые ветки просто хранятся в кэше, по обновлению данных кэш пересобирается. Обычно такие вложенные структуры не хранят миллион записей, проще пересчитать чем тыкать базу много раз.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы