我有两个表,需要将数据从一个移到另一个。我只是想从第一列移动特定值,即如果它们= ni(varchar)到第二列中的新列。
所以我想从表lime_survey_56999
中选择下面的nr数据`id` `56999X159X3400`
1 2
2 6
3 nr
4 mi
将其移至新表lime_survey_56999_cube中,使其显示为
`id` `External-Unique-Factors4NR`
1 NULL
2 NULL
3 nr
4 NULL
我无法使用INSERT INTO,因为lime_survey_56999_cube中已有数据,我需要它来匹配第一个表中的原始行。
以下是我的尝试及其结果/错误消息
UPDATE `lime_survey_56999_cube` set `lime_survey_56999_cube`.`External-Unique-Factors4NR` = (select `56999X159X3400` from `lime_survey_56999` where `56999X159X3400` = 'nr')
错误#1242 - 子查询返回超过1行
UPDATE `lime_survey_56999_cube`
SET `External-Unique-Factors4NR` = 'nr'
WHERE `56999X159X3400` in (select `56999X159X3400` from `lime_survey_56999` where `56999X159X3400` = 'nr');
错误#1054 - “IN / ALL / ANY子查询”中的未知列“56999X159X3400”
UPDATE `lime_survey_56999_cube`
INNER JOIN `lime_survey_56999`
SET `lime_survey_56999_cube`.`External-Unique-Factors4NR` = `lime_survey_56999`.`56999X159X3400`
WHERE `lime_survey_56999`.`56999X159X3400` = 'nr'
这只将nr放入External-Unique-Factors4NR的所有列中,而不是与第一个表中的条目对应的位置。
非常感谢任何帮助!我一直在扯掉头发!
答案 0 :(得分:0)
您错过了加入的ON
条款
UPDATE `lime_survey_56999_cube`
INNER JOIN `lime_survey_56999`
ON `lime_survey_56999_cube`.???? = `lime_survey_56999`.????
SET `lime_survey_56999_cube`.`External-Unique-Factors4NR` = `lime_survey_56999`.`56999X159X3400`
WHERE `lime_survey_56999`.`56999X159X3400` = 'nr'
将????
替换为相应的列名