Файловое дерево в OracleSQL - PullRequest
1 голос
/ 26 ноября 2011

У меня есть базовое дерево файловой системы, которое состоит из двух таблиц:

folders
     =======================
     id_f    | (PK)
     name    |
     parent  | (FK references id_f)

и

files
     =======================
     name    |
     content | (File content / text)
     parent  | (FK references id_f)

Мне нужно сделать запрос, который отобразит файловую систему в виде дерева, например:

ROOT
   DIR1
      file1
      file2
   DIR2
   DIR3
      file
   DIR4
      DIR5
      DIR6

Любая помощь о том, как добиться этого вывода? Спасибо

1 Ответ

4 голосов
/ 26 ноября 2011

Я бы попробовал это. Сам не могу проверить это сейчас.

SELECT LPAD(' ', (level-1)*2) || name
FROM (
  SELECT id_f, name, parent FROM folders
  UNION ALL
  SELECT NULL, name, parent FROM files
  )
START WITH parent IS NULL
CONNECT BY parent = PRIOR id_f
...