来自同一个表

时间:2016-03-01 01:50:30

标签: mysql sql sql-update

我有这张桌子

id  child_id  root_id
====================
1     0        0
2     0        1
3     0        2

我想更新一行并将child_id更改为特定行的id,并将root_id作为其id。

我试过这个mysql语句

UPDATE table SET child_id = id WHERE id = root_id;

我想要的输出示例是

id  child_id  root_id
====================
1     2        0
2     3        1
3     0        2

2 个答案:

答案 0 :(得分:4)

您需要使用更新并加入自身。

update mytable t1
inner join mytable t2 on t1.id = t2.root_id
set t1.child_id = t2.id

答案 1 :(得分:1)

update t1
set t1.child_id = t2.id 
from table t1
inner join table t2
on t1.id = t2.root_id

请检查一下是否有效。感谢