Re[3]: небольшая разминка мозга для любителей SQL
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 21.04.22 11:03
Оценка:
Здравствуйте, L_G, Вы писали:

L_G>gandjustas,

L_G>ОК, почти совпадает с моим.
L_G>Только второй джойн должен быть left, а то "корни" не проджойнятся.

L_G>Оказывается, прямо "из учебника" решение?

Почти. Очень похоже на алгоритм копирования двусвязного списка, который обобщается до копирования любых многосвязных структур.


L_G>Или в универе такие задачи без ответов дают и все сами должны догадаться?

А чего сложного в этой задаче?
1) Так как у нас Id генерируется, то мы не можем в одном запросе связать новые узлы с родительскими, так как id родительских неизвестны в момент вставки
2) Очевидное решение — сохранить где-то id старых узлов и после вставки обновить parentid в новом дереве, получив id новых узлов по сохраненным старым
2) Неочевидное, но часто используемое в других алгоритмах, решение — использовать parentid новых для сохранения старых id
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.