我有2个表,如下面的结构。除了表名之外,两者都是相同的。
tbl_item_color_exp
>>item_color_ID
>>color_ID
>>item_ID
tbl_item_color_live
>>item_color_ID
>>color_ID
>>item_ID
我希望将tbl_item_color_live表中的几行复制到tbl_item_color_exp表。我可以通过以下SQL完成复制确切的列和行:
INSERT INTO tbl_item_color_exp
SELECT * FROM tbl_item_color_live WHERE item_ID = $oldID
但是我不想创建复制item_color_ID
主键,我想将复制的item_ID列的所有行更新为新变量$newID
。一般的想法是根据$oldID
复制所有行,并使用&newID
更新目标表,但使用自动递增的主键color_ID
维护item_color_ID
列。
我可以使用几个SQL查询来完成它,但我想知道我是否可以通过一个SQL行以更有效的方式完成所有操作?我希望所有人都可以理解我的问题,谢谢。
答案 0 :(得分:4)
我不是百分百肯定我明白你想要什么,但听起来你实际上只想复制color_id
,你想用新的item_id
来设置它们,你想要自动编号。
听起来像:
INSERT INTO tbl_item_color_exp (color_id,item_id)
SELECT color_id,$newID FROM tbl_item_color_live WHERE item_ID = $oldID
答案 1 :(得分:2)
INSERT INTO tbl_item_color_live (color_ID, item_ID)
SELECT color_ID, $newID FROM tbl_item_color_exp WHERE item_ID = $oldID