Update mysql table with data from another table

William Macdonald picture William Macdonald · Jan 6, 2009 · Viewed 87.3k times · Source

Is it possible to run an UPDATE command on mysql 5.0 with a sub select.

The command I would like to run is this:

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

ISBN13 is currently stored as a string.

This should be updating 10k+ rows.

Thanks,

William

Answer

MCurbelo picture MCurbelo · Mar 9, 2012
UPDATE table1 t1, table2 t2
SET t1.field_to_change = t2.field_with_data
WHERE t1.field1 = t2.field2;