Как выбрать значение, а затем обновить поле - PullRequest
0 голосов
/ 20 февраля 2019

У меня есть две таблицы, одна из которых хранит идентификатор старого img

 id | old_img_name | old_img_id

, а другая таблица хранит информацию о текущем img

id |img_name | img_w | img_h | etc....

и imпри попытке создать запрос для обновления (переключения) информации из старой таблицы в новую, единственное поле, которое я хочу обновить, - это img_name.

Я создал два запроса, чтобы сделать это:

SELECT id, old_img_id, old_img_name FROM `img_archives` WHERE id = 3

UPDATE imgs SET img_name = old_img_name  WHERE id = old_img_id 

Я хочу объединить эти два запроса в один, но у меня много или проблемы с этим.

Я пробовал это:

UPDATE imgs SET img_name = img_archives_old_img_name FROM imgs INNER JOIN img_archives ON imgs_id = img_archives.old_img_id;

нене работает

Ответы [ 3 ]

0 голосов
/ 20 февраля 2019

В MySQL обновление с объединением должно использовать этот синтаксис. Если вы хотите обновить идентификатор = 3

UPDATE imgs 
INNER JOIN img_archives ON imgs.imgs_id = img_archives.old_img_id 
    AND img_archives.id =  3
    SET img_name = "test" 
0 голосов
/ 21 февраля 2019
UPDATE imgs i INNER JOIN img_archives ia ON i.imgs_id = ia.old_img_id SET i.img_name = ia.old_img_name;

больше информации здесь: http://www.mysqltutorial.org/mysql-update-join/

0 голосов
/ 20 февраля 2019
-- this should do it
UPDATE imgs 
SET img_name = img_archives.old_img_name   
FROM imgs 
INNER JOIN img_archives ON imgs_id = img_archives.old_img_id;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...