'Update mysql table with data from another table
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
Solution 1:[1]
Just a litle change and you got it:
UPDATE book_details
SET live = 1
WHERE ISBN13 in (SELECT ISBN13 FROM book_details_old WHERE live = 1);
Solution 2:[2]
UPDATE table1 t1, table2 t2
SET t1.field_to_change = t2.field_with_data
WHERE t1.field1 = t2.field2;
Solution 3:[3]
UPDATE book_details AS bd, book_details_old AS old
SET bd.live=1
WHERE bd.isbn13=old.isbn13
AND old.live=1;
Solution 4:[4]
To update a table from data in another table:
UPDATE table1, table2
SET table1.field1 = table2.field1
WHERE table1.id = table2.id;
For example:
UPDATE transaction, member
SET transaction.Memberid = member.memberId
WHERE transaction.CardId = member.CardId;
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Ricardo Acras |
| Solution 2 | Jomoos |
| Solution 3 | castis |
| Solution 4 | simhumileco |
