0

我有两个表,需要将数据从一个移动到另一个。我只想将特定值从第一列移动,即如果它们 = 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 的所有列中,而不是它对应于第一个表中的条目的位置。

任何帮助将不胜感激!我一直在为此扯头发!

4

1 回答 1

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'

替换????为对应的列名

于 2011-06-27T09:20:11.577 回答