I read various post’s prior to this. but none of them seemed to work for me.
As the title suggests, I am trying to update one column from a column in another table. I don’t recall having problems with this before..
1. Table: user_settings.contact_id, I want to update with contacts.id where (user_settings.account_id == contacts_account_id)
2. Previously Contacts were linked to user accounts via the account_id. However, now we want to link a contact to user_settings
via contacts.id
Below are a few examples of what I have tried, though none of them have worked. I would be interested in A.) Why they don’t work and B.) What should I do instead.
Example A:
UPDATE user_settings SET user_settings.contact_id = contacts.id FROM user_settings INNER JOIN contacts ON user_settings.account_id = contacts.account_id
Example B:
UPDATE (SELECT A.contact_id id1, B.id id2 FROM user_settings A, contacts B WHERE user_settings.account_id = contacts.account_id) SET id1 = id2
Example C:
UPDATE user_settings SET user_settings.contact_id = (SELECT id FROM contacts WHERE (user_settings.account_id = contacts.account_id) WHERE EXISTS ( user_settings.account_id = contacts.account_id )
I feel like my brain just shutdown on me and would appreciate any bumps to reboot it. Thanks 🙂
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
According to MySQL documentation, to do a cross table update, you can’t use a join (like in other databases), but instead use a where clause:
http://dev.mysql.com/doc/refman/5.0/en/update.html
I think something like this should work:
UPDATE User_Settings, Contacts SET User_Settings.Contact_ID = Contacts.ID WHERE User_Settings.Account_ID = Contacts.Account_ID
Method 2
Update tabelName Set SanctionLoad=SanctionLoad Where ConnectionId=ConnectionID go update tabelName Set meterreading=meterreading where connectionid=connectionid go update tabelName set customername=setcustomername where customerid=customerid
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0