我在Postgres有两张桌子
TableA
id, item_id, parent_id
1 i1 null
2 i2 1 -> match the id of the first record (1)
3 i3 2 -> match the id of the second record (2)
TableB
parent_id, item_id
null i1
i1 i2
i2 i3
i1
是最高级别,i2
是第二级,i3
是第三级。
我需要根据parent_id
更新table A
中的1
列,以2
和table B
。
我有
Update TableA set parent_id = ? (SELECT id from TableA WHERE TableA.item_id = TableB.parent_id)
from TableB
where TableB.parent_id = TableA.item_id
以上基本上是我需要的,但我不确定这样做的确切systax。有人可以帮忙吗?
非常感谢!
答案 0 :(得分:1)
你想要的我认为(你不太清楚)是这样的(未经测试):
Update TableA set parent_id = TableA_parent.id
from TableB
inner join TableA TableA_parent
on TableB.parent_id = TableA_parent.item_id
where TableB.item_id = TableA.item_id