0

我有一张名为person_relation

Id  | ParentId    |  ChildId  | PersonId    
-------------------------------------------
1   |    null     |  2        |   null     
-------------------------------------------
2   |     1       |  3        |   null      
-------------------------------------------
3   |     2       |  4        |    122
-------------------------------------------
4   |     3       |  null     |    122
-------------------------------------------

这 4 行属于 id 为 122 的一个人。我正在努力更新 PersonId 列;前 2 行应该有 122 作为 PersonId。


Id  | ParentId    |  ChildId  | PersonId    
-------------------------------------------
1   |    null     |  2        |   null     
-------------------------------------------
2   |     1       |  3        |   null      
-------------------------------------------
3   |     2       |  4        |    122
-------------------------------------------
4   |     3       |  null     |    122
-------------------------------------------
5   |    null     |  6        |   123
-------------------------------------------
6   |     5       |  7        |   null      
-------------------------------------------
7   |     6       |  8        |    123
-------------------------------------------
8   |     7       |  null     |    null   
-------------------------------------------

现在这个表有两个人,他们的 id 是 122 和 123。它可能有很多人。所以上面的回复是行不通的。因此,我们需要一种迭代方法来更新这些行。

4

3 回答 3

1
update person_relation 
set personid = 122
where personid is null
于 2012-05-12T13:57:20.713 回答
0

parent_id 中应该有关系。如果其中 4 个属于家庭。然后他们的孩子应该将 parentID 列值作为他们的父母 ID 号......(在这种情况下为 1 或 2)。我想知道如果他们是同一个家庭,父母ID怎么可能为空..?

如果父母ID是正确的,那么你可以正确更新孩子的personID。

于 2012-05-14T07:53:56.247 回答
0

Juergen 的回答将完成工作,但我敢打赌,您的数据集不限于这四行。我会做一些更安全的事情:

update person_relation
set PersonId = 122
where Id IN (1,2)
于 2012-05-12T16:37:28.880 回答