Проблемы с копированием данных из одной таблицы в другую через 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'
замещать ????
с соответствующими именами столбцов