Проблемы с копированием данных из одной таблицы в другую через UPDATE и INSERT INTO

У меня есть две таблицы и мне нужно переместить данные из одной в другую. Я просто хочу переместить конкретные значения из первого столбца, т. Е. Если они = ni (varchar) в новый столбец во втором.

Поэтому я хотел бы выбрать данные nr ниже из таблицы lime_survey_56999

`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 - Неизвестный столбец "56999X159X3400" в "IN/ALL/ANY subquery"

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, а не там, где это соответствует записи в первой таблице.

Любая помощь будет очень высоко ценится! Я рвал на себе волосы из-за этого!

1 ответ

Вам не хватает 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'

замещать ???? с соответствующими именами столбцов

Другие вопросы по тегам