web-dev-qa-db-fra.com

Mettre à jour la table mysql avec les données d'une autre table

Est-il possible d'exécuter une commande UPDATE sur mysql 5.0 avec un sub select.

La commande que je voudrais exécuter est la suivante:

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

ISBN13 est actuellement stocké sous forme de chaîne.

Cela devrait mettre à jour 10k + lignes.

Merci,

William

38
William Macdonald

Juste un petit changement et vous l'avez compris:

UPDATE book_details
SET live = 1 
WHERE ISBN13 in (SELECT ISBN13 FROM book_details_old WHERE live = 1);
17
Ricardo Acras
UPDATE table1 t1, table2 t2
SET t1.field_to_change = t2.field_with_data
WHERE t1.field1 = t2.field2;
180
MCurbelo
UPDATE book_details AS bd, book_details_old AS old
SET bd.live=1  
WHERE bd.isbn13=old.isbn13  
AND old.live=1;
22
Rob

Pour mettre à jour une table à partir des données d'une autre table

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;

3
luxknight_007