2

我用类似的标题阅读了这个问题,但它与我的问题不符。

我有这张桌子

Robot_Minions
id | type   | id_robot_master
1  | catbot | 15
2  | dogbot | 15
3  | batbot | 15

我想要做的是复制 Robot_Master 15 的所有 Robot_Minons 并将它们分配给 Robot_Master 16。

所以最终结果应该看起来像

Robot_Minions
id | type   | id_robot_master
1  | catbot | 15
2  | dogbot | 15
3  | batbot | 15
4  | catbot | 16
5  | dogbot | 16
6  | batbot | 16

我能想到的一种方法是首先选择要复制的行,然后遍历它们并运行 INSERT blah 然后 UPDATE blah WHERE id=last insert id。但这是 1+2x 查询。有没有更好的方法,理想情况下作为一个查询?

4

1 回答 1

4

如果您已经知道希望将 minions 分配给您的 robot_master 的 id,则可以使用以下查询:

INSERT INTO Robot_minions (type,id_robot_master)
SELECT type, '<new robot_master_id>' 
FROM Robot_minions
WHERE id_robot_master = '<old robot_master>'

这将选择属于的奴才,<old robot_master>然后将最终结果集插入Robot_minions<new robot_master_id>

于 2011-03-16T09:58:15.943 回答