У меня есть таблица документы и таблица СКОРОСШИВАТЕЛИКак выбрать для следующего?
FOLDERS
ID
lft
rgt
DOCUMENTS
ID
folderID -> FOLDERS(ID)
title
Итак, что мы имеем здесь сколь угодно глубокое дерево папок (вложенные наборы). Каждая папка может содержать произвольное количество документов.
Каков наиболее эффективный способ выбора всех документов, находящихся под определенной папкой? То есть, я хочу ВЫБРАТЬ не только документы, находящиеся в папке, но и документы, находящиеся в подпапках этой папки.
Edit: Выборочные данные, чтобы сделать вещи более ясно:
FOLDERS
ID LFT RGT
1 1 10
2 2 5
3 3 4
4 6 7
5 8 9
Это представляет собой структуру папок, как так ...
1
2 4 5
3
Где 2, 4, 5 дети 1, и 3 ребенок 2
Сейчас ...
Скажем ДОКУМЕНТЫ имеет следующие данные ...
DOCUMENTS
ID FolderID Title
1 5 Doc 1
2 3 Doc 2
3 2 Doc 3
Учитывая идентификатор папки, я хочу, чтобы выбрать все документы в этой папке, и все документы в подпапках этой папки. Так, например, дано folderID из 2, SELECT, будет возвращать документы 2 и 3
спасибо (заранее) за помощь
Как насчет некоторых выборочных данных и желаемых результатов для этих данных? Ваш вопрос, как указано, слишком расплывчато. –
@mellamokb, это изменено. Предпросмотр дерева обхода: http://dev.mysql.com/tech-resources/articles/hierarchical-data.html – Schwartzie