我需要标准化我的桌子。所以我制作了一个我执行的脚本(sql)。我想将表 A(旧)中的所有现有客户插入表 B(新)中。
它只是用
INSERT INTO `A` SELECT * FROM `B`;
但我想设置一些外键值。table 中有一个city
字段,A
但table 中有一个city_id
字段B
。我想到了这样的事情:
INSERT INTO `A` (`id`, `name`, `city_id`)
SELECT `id`, `name` FROM `B`,
(SELECT `cities`.`id` FROM `cities` WHERE `cities`.`name` = (SELECT `city` FROM `A` WHERE `A`.`id` = `B`.`id`)) `temp_cities`;
不幸的是,这不起作用,因为B
. id
未设置:-(错误如下:
Error (1054): Unknown column 'B.id' in 'where clause')
我什么时候搞砸了?