Обновите таблицу mysql данными из другой таблицы - PullRequest
37 голосов
/ 06 января 2009

Можно ли выполнить команду UPDATE в MySQL 5.0 с дополнительным выбором.

Команда, которую я хотел бы выполнить, такова:

UPDATE book_details
SET live = 1 
WHERE ISBN13 = '(SELECT ISBN13 FROM book_details_old WHERE live = 1)';

ISBN13 в настоящее время хранится в виде строки.

Это должно быть обновление 10k + строк.

Спасибо

William

Ответы [ 5 ]

178 голосов
/ 09 марта 2012
UPDATE table1 t1, table2 t2
SET t1.field_to_change = t2.field_with_data
WHERE t1.field1 = t2.field2;
22 голосов
/ 06 января 2009
UPDATE book_details AS bd, book_details_old AS old
SET bd.live=1  
WHERE bd.isbn13=old.isbn13  
AND old.live=1;
16 голосов
/ 06 января 2009

Просто небольшое изменение, и вы получите:

UPDATE book_details
SET live = 1 
WHERE ISBN13 in (SELECT ISBN13 FROM book_details_old WHERE live = 1);
3 голосов
/ 11 марта 2013

Для обновления таблицы из данных в другой таблице

UPDATE table1, table2 SET table1.field1 = table2.field1 where table1.id = table2.id

EX. UPDATE transaction, member SET transaction.Memberid = member.memberId WHERE transaction.CardId = member.CardId;

0 голосов
/ 03 октября 2012

Для обновления данных из другой таблицы

UPDATE  tab t1
SET     t1.company_name = t2.company_name
FROM    tab t2
WHERE   t1.id = t2.id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...