Go Back   Armenian Knowledge Base > Technical sections > Webmaster Zone > Web Development

Reply
 
Thread Tools

SQL query
Old 11.04.2007, 11:07   #1
Web developer
 
Aram Ghazanchyan's Avatar
 
Join Date: 09 2002
Location: Yerevan
Age: 45
Posts: 896
Rep Power: 0
Default SQL query

Кто поможет написать запрос...

Таблица Folders
ID | Folder | Title
-----------------
1 | 0 | Title 1
2 | 0 | Title 2
3 | 1 | Title 1.1
4 | 1 | Title 1.2
5 | 3 | Title 1.1.1
6 | 4 | Title 1.2.1

Дерево думаю понятно как работает, так вот мне нужен запрос ( рекурсивный ) который бы выводил все под и под - названия Title 1, т.е. должны выводится строки с ID=3,4,5,6

Надеюсь доступно обьяснил.

Old 11.04.2007, 11:20   #2
Web developer
 
Aram Ghazanchyan's Avatar
 
Join Date: 09 2002
Location: Yerevan
Age: 45
Posts: 896
Rep Power: 0
Default

Пожалуйста отвечайте по существу. Мне нужен только и только SQL запрос, никаких других инструментов ( PHP ) у меня нет!

Old 11.04.2007, 12:03   #3
мрачный бородач
 
Arth-Gwyr's Avatar
 
Join Date: 09 2005
Location: Антитентура
Age: 47
Posts: 11,134
Rep Power: 7
Default

я чего-то не совсем понял
select * from Folders where Title like 'Title1.%'
хоски сенц бан?

Old 11.04.2007, 22:44   #4
инсценирующи
 
[ Xelgen ]'s Avatar
 
Join Date: 07 2002
Location: Fireplace of Ecotopia
Age: 41
Posts: 4,327
Rep Power: 5
Default

Arth-Gwyr> не, Title может иметь какое угодно название.

По делу, есть возможность создать MySQL функцию?
Ибо без нее насколько я понимаю рекусрсии или ее "заменителя" не получиться.
Написать подзапросы для 2-ух 3ех уровней можно, но это для конечного и (пожалуй однозначного) числа, некрасиво и не по нашенски.

Old 11.04.2007, 23:14   #5
инсценирующи
 
[ Xelgen ]'s Avatar
 
Join Date: 07 2002
Location: Fireplace of Ecotopia
Age: 41
Posts: 4,327
Rep Power: 5
Default

С гуглом становиться скучно жить.. а мозги заплывают жиром..
Если вдруг еще не нашел:
Вот: http://lists.mysql.com/mysql/198073
Конкретнее:
http://dev.mysql.com/tech-resources/...ical-data.html

Old 11.04.2007, 23:26   #6
инсценирующи
 
[ Xelgen ]'s Avatar
 
Join Date: 07 2002
Location: Fireplace of Ecotopia
Age: 41
Posts: 4,327
Rep Power: 5
Default

Пасторен без небольших извратов, и модификации струтруы данных, с некоторой избыточной инфой не обойтись.

Old 12.04.2007, 04:55   #7
Web developer
 
Aram Ghazanchyan's Avatar
 
Join Date: 09 2002
Location: Yerevan
Age: 45
Posts: 896
Rep Power: 0
Default

Xelgen, спасибо большое за ответ, то что я копал оказалось непригодным, структуру таблицы менять не могу.

Что же касается конкретной задачи: в дальнейшем нужно все подкатегории отсортировать не по глубине, а по дате ввода и еще надо будет организовать постраничный вывод. В таблице порядка 3000 записей начально, потом может доходить до 10-ок тысяч.

* AvDav, без обид, ок? Просто я всегда оформляю вопрос максимально корректно, чтоб потом бы не шел флейм на 2-3 страницы, Еслиб я бы тебя не прервал, было бы огромное кол-во людей писавших "inchi PHP, .NET ogtagorci" и все в этом духе

Old 13.04.2007, 00:02   #8
инсценирующи
 
[ Xelgen ]'s Avatar
 
Join Date: 07 2002
Location: Fireplace of Ecotopia
Age: 41
Posts: 4,327
Rep Power: 5
Default

Quote:
Originally Posted by Aram Ghazanchyan View Post
Xelgen, спасибо большое за ответ, то что я копал оказалось непригодным, структуру таблицы менять не могу.
Не совсем понял, если честно, что ты имел ввиду. Nested Set не возможно применить?
Не знаю как чистым SQL, но скриптом можно запросто привести данную тобой структуру, в nested set. Можно не трогать оригинальную таблицу, если так ограничен в свободе, но содержать паралельно оригинальной таблице нестед сет.
Ну или иной вариант, можно работать и этой таблицей (описанно в первой части), но нужно будет как то вычилить макс глубину, и сделать соотвествубщее ей количество JOIN'ов..
Весь вопрос как я понимаю, в том как ее вчсилсить, используя только SQL.

Quote:
Originally Posted by Aram Ghazanchyan View Post
Что же касается конкретной задачи: в дальнейшем нужно все подкатегории отсортировать не по глубине, а по дате ввода и еще надо будет организовать постраничный вывод. В таблице порядка 3000 записей начально, потом может доходить до 10-ок тысяч.
Гм, тут проблем вроде нет? SORT BY `ID` и LIMIT.

А так, пожалуйста, самому было интересно, да и скоро может на практике пригодиться.

Old 13.04.2007, 04:25   #9
Web developer
 
Aram Ghazanchyan's Avatar
 
Join Date: 09 2002
Location: Yerevan
Age: 45
Posts: 896
Rep Power: 0
Default

Quote:
Гм, тут проблем вроде нет? SORT BY `ID` и LIMIT.
О функции SORT BY я знаю, просто представь если ты используешь скрипт и каждый раз генерируешь запрос к "родителю", то сортировка будет конкретно в данном Folder-е, т.е. нужно будет использовать массивы, а при данном кол-ве данных Массив + Пару 1000 SELECT-ов машина не выдержит...

Old 16.04.2007, 12:19   #10
*****
 
Michael's Avatar
 
Join Date: 03 2003
Location: Yerevan
Posts: 314
Rep Power: 0
Default

Es depqum karog es ogtagortcel

Nested Query vori hamar stipvac klines popoxel bazaji strukturan (bajc kkaroganas @ndamen@ mi zaprosov stanas cankacacac makardak u cankacac xorutjun),

Isk aveli hesht popoxutjun piti anes, bajc qich avelacnes Level dasht@ vorteg kkaroxanas pahel tvjal makardak@ vor@ kqchacni zaprosneri qanak@

Isk es dzevov voch mi ban el ches karox anel. Izur mi charcharvi.
__________________
Men's eyes were made to look, and let them gaze.
Reply




Реклама:
реклама
Buy text link .

All times are GMT. The time now is 10:10.
Top

Powered by vBulletin® Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.