LINUX.ORG.RU

История изменений

Исправление alex_the_v, (текущая версия) :

Самый простой и вместе с тем гениальный способ построения дерева, это не использовать никакие id, parent_id, не использовать

Ну-ну, далеко пойдешь. Если бы ты строил дерево как все нормальные люди с id и parent_id, то мог бы потом по-царски написать рекурсивный запрос, и тогда у тебя что угодно влезло бы в этот один запрос. Например так:

with threads_recursive (comment_id, comment_data) as (
  select i.comment_id, 
         i.comment_data 
  from comments i 
  where i.comment_id = 1
  union all
  select c.comment_id, 
         c.comment_data 
  from threads_recursive p 
  inner join comments c on c.parent_id = p.comment_id
) select * from threads_recursive;

Но ты закладываешь весьма странное решение в свою конструкцию, и поэтому тебе предстоит всю дорогу трахаться с substr(instr(substr(instr())))). Причем, не факт, что у тебя всегда получится выражать то, что там тебе понадобится.

Исходная версия alex_the_v, :

Самый простой и вместе с тем гениальный способ построения дерева, это не использовать никакие id, parent_id, не использовать

Ну-ну, далеко пойдешь. Если бы ты строил дерево как все нормальные люди с id и parent_id, то мог бы потом по-царски написать рекурсивный запрос, и тогда у тебя что угодно влезло бы в этот один запрос. Например так:

with threads_recursive (comment_id, comment_data) as (
  select i.comment_id, 
         i.comment_data 
  from comments i 
  where i.comment_id = 1
  union all
  select c.comment_id, 
         c.comment_data 
  from threads_recursive p 
  inner join comments c on c.comment_id = p.comment_id
) select * from threads_recursive;

Но ты закладываешь весьма странное решение в свою конструкцию, и поэтому тебе предстоит всю дорогу трахаться с substr(instr(substr(instr())))). Причем, не факт, что у тебя всегда получится выражать то, что там тебе понадобится.