|
Таинственный рекурсивный запрос
|
|||
---|---|---|---|
#18+
Я плохо понимаю логику рекурсивных запросов, есть запрос Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33.
Можно ли вынести стартовую часть рекурсии, то есть сделать что-то типа этого Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38.
Можно ли верхний запрос заменить нижним ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 18:41 |
|
Таинственный рекурсивный запрос
|
|||
---|---|---|---|
#18+
Насколько я поминаю так делать нельзя, тогда другой вопрос можно каким-либо образом вынести стартовую часть рекурсии, чтобы вычислялась 1 раз, для обновления 2 полей? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 20:12 |
|
Таинственный рекурсивный запрос
|
|||
---|---|---|---|
#18+
polin11Можно ли верхний запрос заменить нижним а сами как думаете. можно попытатся посмотреть в эту сторону : Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 20:19 |
|
Таинственный рекурсивный запрос
|
|||
---|---|---|---|
#18+
Мне кажется это подойдет, а как вам кажется? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 21:32 |
|
Таинственный рекурсивный запрос
|
|||
---|---|---|---|
#18+
polin11Мне кажется это подойдет, а как вам кажется? мне кажется что вы лысого вхолостую гоняете. например. у вас латеральный по структуре подзапрос. и это безо всякого отношения к "рекурсивности" поднять его выше родительского можно . за счет лишнего джойна. но не нужно. то, что я вам предложил как отругалось ? или вы и не пытались ? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 21:58 |
|
Таинственный рекурсивный запрос
|
|||
---|---|---|---|
#18+
-- там у меня одна опечатка , как минимум: qwwqpolin11Можно ли верхний запрос заменить нижним а сами как думаете. можно попытатся посмотреть в эту сторону : Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
ага, вижу. должно работать . +- синтаксические камушки. да, если у вас все алиасы смотрят на одну таблу , и какое-то из полей ключевое -- можно подумать неформально ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 22:09 |
|
Таинственный рекурсивный запрос
|
|||
---|---|---|---|
#18+
polin11, поле "Fileld3" у вас в Тейбл уникально ? если да (и только в этом случае) -- возможно ваш последний запрос формально эквивалентен исходному (если навскидку) врд ли пж дотумкает, что набор 1. т.ч. можете скрестить с конструкцией Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 22:23 |
|
Таинственный рекурсивный запрос
|
|||
---|---|---|---|
#18+
qwwq, Да Вы, батенька, просто гений!!! Для полного счастья мне нужно обновить третье поле Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
Пробовал аналогичным образом, Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27.
Но оно, Field5 неверно считается... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 22:57 |
|
Таинственный рекурсивный запрос
|
|||
---|---|---|---|
#18+
polin11qwwq, Да Вы, батенька, просто гений!!! Для полного счастья мне нужно обновить третье поле Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
Пробовал аналогичным образом, Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27.
Но оно, Field5 неверно считается...былоб странно, когда б совсем другой рекурсивный запрос. даже по цепочке итераций другой, а не только полями. давал тот же результат. т.ч. тут отдельная логика. а зачем вы сами себя через себя пересчитываете ? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 23:11 |
|
Таинственный рекурсивный запрос
|
|||
---|---|---|---|
#18+
qwwq, Прощу прощения, я сам уже запутался, запрос первоначальный выглядит так Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55.
Осталась проблема, обновить также изящно поле Field5 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 23:38 |
|
Таинственный рекурсивный запрос
|
|||
---|---|---|---|
#18+
Все вроде работает, сейчас проверяю на разных данных. Спасибо большое, Вы мне очень помогли. Мне только кажется, что из стартовую часть рекурсии можно еще улучшить из Код: sql 1. 2. 3. 4. 5. 6.
сделать Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2018, 13:53 |
|
Таинственный рекурсивный запрос
|
|||
---|---|---|---|
#18+
polin11Все вроде работает, сейчас проверяю на разных данных. Спасибо большое, Вы мне очень помогли. Мне только кажется, что из стартовую часть рекурсии можно еще улучшить из Код: sql 1. 2. 3. 4. 5. 6.
сделать Код: sql 1. 2. 3. 4.
является ли поле 3 -- уникальным. если да -- то скорее да,чем нет если нет -- то совершенно нет. совсем не обязательно первой итерации содержать 1 запись ------------- к примеру бывает и так : Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
-- 2-й итеративный прогон бежит по граблям заданным первым ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2018, 14:24 |
|
|
start [/forum/topic.php?fid=53&msg=39637049&tid=1995798]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
29ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 295ms |
total: | 419ms |
0 / 0 |