Здравствуйте, L_G, Вы писали:
L_G>gandjustas, L_G>ОК, почти совпадает с моим. L_G>Только второй джойн должен быть left, а то "корни" не проджойнятся.
L_G>Оказывается, прямо "из учебника" решение?
Почти. Очень похоже на алгоритм копирования двусвязного списка, который обобщается до копирования любых многосвязных структур.
L_G>Или в универе такие задачи без ответов дают и все сами должны догадаться?
А чего сложного в этой задаче?
1) Так как у нас Id генерируется, то мы не можем в одном запросе связать новые узлы с родительскими, так как id родительских неизвестны в момент вставки
2) Очевидное решение — сохранить где-то id старых узлов и после вставки обновить parentid в новом дереве, получив id новых узлов по сохраненным старым
2) Неочевидное, но часто используемое в других алгоритмах, решение — использовать parentid новых для сохранения старых id