Здравствуйте. Есть табличка такой структуры |id|parent_id| parent_id ссылается на id в этой же таблице. Мне нужно достать все дочерние элементы, и все дочерние элементы дочерних элементов, отталкиваясь от родителя. Как это можно сделать?
на выбор:
- меняете структуру хранения. nested sets или материализованный путь, например
- вытягиваете всё на приложение и строите там
- делаете МНОГО запросов
- пишете хранимку, которая будет делать много запросов
- если вложенность известна - то через n джойнов можно.
Не имейте себе мозг, селект все и рекурсивной функцией строим ветку, в идеале готовые ветки просто хранятся в кэше, по обновлению данных кэш пересобирается. Обычно такие вложенные структуры не хранят миллион записей, проще пересчитать чем тыкать базу много раз.