The tree-view is practical for users but seems impractical for relational database performance.
SELECT * FROM files p
LEFT JOIN files c ON p.id = c.parent_id
LEFT JOIN files gc ON c.id = gc.parent_id
LEFT JOIN files ggc ON gc.id = ggc.parent_id
....
where p.id = 123
SELECT * FROM files p LEFT JOIN files c ON p.id = c.parent_id LEFT JOIN files gc ON c.id = gc.parent_id LEFT JOIN files ggc ON gc.id = ggc.parent_id .... where p.id = 123