Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Nested sets, MySQL > PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Приветствую уважаемое коммьюнити :) Прошу помощи, ситуация для меня практически безвыходная. На данный момент есть готовое приложение с реализацией Nested Sets в MySQL на базе этой статьи . Сейчас приходится переводить все на PostgreSQL, справился со всем, кроме получения поддерева с вычислением глубины. В статье в качестве примера используется такой запрос: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Постгрес на подобный запрос ругается таким образом: Код: plaintext Собственно, почему MySQL позволяет что-то, что не позволяет Постгрес (риторический вопрос =) ), и как хотя бы примерно нужно переработать запрос? Заранее спасибо за любую помощь, проект горит сильно-сильно =( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2008, 03:57 |
|
||
|
Nested sets, MySQL > PostgreSQL
|
|||
|---|---|---|---|
|
#18+
1) лучше использовать явные join 2) ORDER BY node.lft во вложенном запросе не нужен 3) попробуйте вынести сортировку, примерно так Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2008, 07:01 |
|
||
|
Nested sets, MySQL > PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Если я правильно помню nested sets, то node.name, node.left и node.right находятся на одной строке и имеют взаимно однозначное соответствие. Т.е Вам можно смело дописать в запрос group by node.name, node.left По какой причине mysql пропускает семантически неверную конструкцию sql сказать к сожалению не могу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2008, 08:15 |
|
||
|
Nested sets, MySQL > PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Serik Akhmetov1) лучше использовать явные join 2) ORDER BY node.lft во вложенном запросе не нужен 3) попробуйте вынести сортировку, примерно так Код: plaintext 1. 2. 3. 4. Спасибо, принял к сведению и применил :) tengu_sarutobiЕсли я правильно помню nested sets, то node.name, node.left и node.right находятся на одной строке и имеют взаимно однозначное соответствие. Т.е Вам можно смело дописать в запрос group by node.name, node.left По какой причине mysql пропускает семантически неверную конструкцию sql сказать к сожалению не могу. Да, вы правы, спасибо большое. MySQL вообще достаточно вольно интерпретирует стандарты, насколько я успел понять. Все заработало, огонь потушен, теперь буду спокойно и вдумчиво разбираться с Постгресом на других проектах. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2008, 12:25 |
|
||
|
|

start [/forum/topic.php?fid=53&gotonew=1&tid=2004499]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
10ms |
get first new msg: |
7ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 223ms |
| total: | 356ms |

| 0 / 0 |
