所以我有一张表如下;
id, title, application_number, parent_application_number, parent_case_id
2, 'asd', 'P1234', 'lkjh', null
3, 'qwe', 'adsqwe', 'P1234', 3
我知道这看起来令人困惑,但我会尽力解释它。 我基本上需要查看当前行的parent_case_id,并执行查询以找出哪个行将此字段作为应用程序编号,并将ID更新为parent_case_id。
到目前为止,我有这个,有人可以指出我正确的方向吗?
UPDATE guest.exported_cases
set parent =
(CASE a.child
WHEN '' THEN ''
WHEN NULL THEN ''
else (select id from guest.exported_cases b where b.child = a.child)
END)
FROM guest.exported_cases a;
提前致谢。
答案 0 :(得分:0)
您可以使用join
查找每个孩子的父行:
update child
set parent = parent.id
from YourTable child
join YourTable parent
on parent.child = child.id
where child.parent is null -- Does not currently have a parent
这将根据父级的子列设置子级的父列。