我有一个表人,这些列相互依赖。
person_id, related_person_id, beginner_related_person_id
我的数据示例
person_id related_person_id beginner_related_person_id
1 null null
2 1 null
3 2 null
4 null null
5 4 null
6 null null
此列beginner_related_person_id 是新的,现在为空。
我必须使用 person_id 中的值更新这一行,但要使用根 person_id。
person_id related_person_id beginner_related_person_id
1 null null
2 1 1
3 2 1
4 null null
5 4 4
6 null null
我已经开始编写查询,但需要提示。
update person
set beginner_related_person_id = person_id
where person_id in (select distinct person_id from person start with related_person_id in (select person_id from person)
connect by prior beginner_person_id = person_id);
我应该使用循环吗?或者是其他东西?