2015-01-19 3 views
-1

Я искал высоко и низко и застрял.столбец обновления MySQL из другой таблицы

New table = p8dzk_jbusinessdirectory_companies | Column = comercialName 
Old table = dir | Column = firm 

мне нужно в конце концов, чтобы переместить все данные из старой таблицы в новую таблицу (большинство имен столбцов разные), но ID и «имя» матча записей столбцов.

Я пробовал:

UPDATE p8dzk_jbusinessdirectory_companies JOIN dir ON p8dzk_jbusinessdirectory_companies.comercialName = dir.firm 
SET dir.firm = p8dzk_jbusinessdirectory_companies.comercialName; 

Result 0 rows affected. 

попытался также переименовать старое имя столбца таблицы, чтобы соответствовать новой и запускал тот же самый запрос с отредактированным именем столбца - тот же результатом.

Помогите, пожалуйста?

+0

На самом деле вам нужно INSERT INTO new (newcol1, newcol2) (SELECT oldCol1, oldCol2 FROM old) – ITroubs

+0

Возможно, мне нужно уточнить, что уже есть соответствующие записи в новая таблица db. Выше написано заявление добавлено новые записи :(Но, спасибо за ответ. –

+0

Вы правы. Если вы не указали свой ответ правильно, тогда мы не сможем помочь вам так, как вам нужно – ITroubs

ответ

0

У меня есть решение вашей проблемы, я проверил с вашим запросом, у меня тоже был тот же результат. Проблема в том, что вы присоединяетесь к таблице с comercialName и фирмой. ваше значение будет вставлено, если столбец таблицы будет иметь одинаковое значение. Вы обновляете тот же столбец, где вы сделали условие присоединения. Вы должны выбрать другое поле для присоединения к таблице и другое поле для обновления значения. Позвольте вам привести пример, который я выполнил для тестирования.

UPDATE `test` join `tbl_salon_cont_no` on `test`.`emp_name`=`tbl_salon_cont_no`.`emp_name` SET `tbl_salon_cont_no`.`emp_name`=`test`.`emp_name` 

Здесь я получил тот же результат, что и вы. Затем пробовал с другим и работал.

UPDATE `tbl_salon_cont_no` join `test` on `test`.`salon_id`=`tbl_salon_cont_no`.`salon_id` SET `tbl_salon_cont_no`.`emp_name`=`test`.`emp_name` 

Здесь я столкнулся с одним рядом.

---------------------------------- 

Наконец, вы не можете обновить одно и то же значение в том же столбце, в той же строке.


tbl_salon_cont_no: первое изображение

тест: второе изображение

tbl_salon_cont_no

test

+0

Прошу простить мое невежество .. но вы могли бы повторить рабочий запрос с таблицей/столбцом old/new или с моими значениями? Я полностью потерял то, что есть ... –

+0

Посмотрите сейчас. Я обновил свой ответ. Сделайте некоторые изменения в значении из полей, и вы увидите, что результаты 1/2 и т. д. обновлены успешно. –

+0

Огромное вам спасибо! Я все еще не понял, но я действительно нашел что-то, что мне было нужно: UPDATE new_table , old_table SET new_table.com commercialName = old_table.firm WHERE new_table.name = old_table.name –

0

Раствор

ОБНОВЛЕНИЕ new_table, old_table SET new_table.comercialName = ола d_table.firm WHERE new_table.name = old_table.name

Смежные вопросы