Запрос для обновления поля

12
S
На сайте с 19.03.2013
Offline
67
804

Здравствуйте ув. форумчане. Вопрос к знатокам MySQL. Есть две таблицы А и В с одинаковыми полями под названием test, нужно обновить поле test в таблице А данными из поля test в таблице В. Помогите правильно составить запрос, уже юзал поиск, ковырял и так и сяк, но видать без знаний MySQL ничего не получится.

Заранее всем благодарен за любую помощь.

Pазвлечения ЗДЕСЬ (http://soloman.ru)
dlyanachalas
На сайте с 15.09.2006
Offline
693
#1

update tableA a
left join tableB b on
a.name_a = b.name_b
set
val_field= b.val
koders
На сайте с 29.04.2007
Offline
91
#2

Мало информации. По какому полю таблицы связаны? В том смысле, что как можно определить, что запить №20 из таблицы A должна быть связана с записью №35 из B?

Бесплатный PHP-скрипт массовой проверки ИКС (https://a-panov.ru/massovaya-proverka-iks-skript-na-php/)
S
На сайте с 19.03.2013
Offline
67
#3
dlyanachalas:
update tableA a

left join tableB b on
a.name_a = b.name_b
set
val_field= b.val

dlyanachalas, прописал таким вот образом

update table_A  a

left join table_B b on
a.поле1 = b.поле2
set
val_field= b.val

получил ответ

#1054 - Unknown column 'val_field' in 'field list' 


---------- Добавлено 21.06.2015 в 10:06 ----------

koders, затрудняюсь ответить на Ваш вопрос,

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

update таблица_А set поле1=`поле2`;

Вот нужно сделать тоже самое только из разных таблиц....Прошу не пинать за серость )

dlyanachalas
На сайте с 15.09.2006
Offline
693
#4
#1054 - Unknown column 'val_field' in 'field list'

Названия полей условны. Вам надо туда свои поля прописать.

---------- Добавлено 21.06.2015 в 09:15 ----------

Вот нужно сделать тоже самое только из разных таблиц....Прошу не пинать за серость )

UPDATE таблица_А a

LEFT JOIN таблица_B b ON a.name_a = b.name_b
SET поле1=`поле2`

"a.name_a = b.name_b" - здесь своё сопоставление подставьте.

S
На сайте с 19.03.2013
Offline
67
#5

dlyanachalas, прошу прощения, а вместо name_a и name_b имена таблиц прописать или полей?

dlyanachalas
На сайте с 15.09.2006
Offline
693
#6
soloman:
dlyanachalas, прошу прощения, а вместо name_a и name_b имена таблиц прописать или полей?

полей .

S
На сайте с 19.03.2013
Offline
67
#7

Понял Вас dlyanachalas, скажите пожалуйста, а если поле попробовать перенести поле (не обновить, а полностью переместить поле из таблицы А в таблицу В) такое возможно?

---------- Добавлено 21.06.2015 в 13:50 ----------

dlyanachalas, прописал все как нужно, ошибок не было но и результата пока тоже (то бишь висело в выполнении около часа) и так и не вернуло ответа о выполнении.

Нашел след. запрос

INSERT INTO таблица_А (поле1) select поле2 from таблица_2

Этот запрос перенес все записи, но не обновил, а добавил записи (то бишь удвоил количество), скажите пожалуйста можно реализовать все тоже самое только с командой UPDATE?

S
На сайте с 19.03.2013
Offline
67
#8

А это запрос возвращает ошибку с синтаксисом

UPDATE таблица_1 t1
SET поле_1 = t2.поле_2
FROM таблица_2 t2
WHERE (t1.поле_1 = t2.поле_2);

помогите найти ошибку, быть может он мне поможет

S
На сайте с 19.03.2013
Offline
67
#9

Прошу прощения запустил выполнение этого

UPDATE таблица_А a 
LEFT JOIN таблица_B b ON a.name_a = b.name_b
SET поле1=`поле2`
...

"Жует" уже полтора часа, не знаю даже работает он или просто висит.

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

Как скажите может такой объем обрабатываться так долго, или нужно прерывать?

dlyanachalas
На сайте с 15.09.2006
Offline
693
#10
soloman:
Прошу прощения запустил выполнение этого
UPDATE таблица_А a 

LEFT JOIN таблица_B b ON a.name_a = b.name_b
SET поле1=`поле2`
...
"Жует" уже полтора часа, не знаю даже работает он или просто висит.
В поле примерно 150к. записей, ограничения на выполнение операций предварительно изменил таким образом, что он теперь так висеть может еще сутки....
Как скажите может такой объем обрабатываться так долго, или нужно прерывать?

Выкладывайте структуру таблицы и что конкретно хотите обновить.

Видимо где-то ошибка в запросе, но телепатов тут нет.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий