0

I have two tables and I need to make single SQL request which will update values in both of them.

Their releation is based on ID (1 table = evdb_users.ID / 2 table = evdb_usermeta.user_id)

For now I did some SQL query like this:

"UPDATE evdb_users
       INNER JOIN evdb_usermeta ON evdb_users.ID = evdb_usermeta.user_id AND evdb_usermeta.meta_key='phone_number'
       SET evdb_users.user_login='%s', evdb_users.user_email='%s', evdb_users.display_name='%s', evdb_usermeta.meta_value='%s'
       WHERE evdb_users.ID=%d"

Data in evdb_users (login/email/display name) - are updating, but nothing changes in usermeta (phone_number)

Please help me to figure out how it should be and how it must works.

A K
  • 3
  • 4
  • Does this answer your question? [MySQL, update multiple tables with one query](https://stackoverflow.com/questions/4361774/mysql-update-multiple-tables-with-one-query) – Luuk Jul 16 '22 at 13:11
  • Hi, unfortunately no – A K Jul 16 '22 at 13:16
  • Please help to figure you why "unforturtunatly no" – Luuk Jul 16 '22 at 13:28
  • @Luuk thank you for your comment, generally it gave me a look how UPDATE should work but in special this case the answer to my question is the best option Anyway thank you for your link. It will help me to understand this topic better. – A K Jul 16 '22 at 13:37

1 Answers1

0

try this:

UPDATE evdb_users
       INNER JOIN evdb_usermeta
         ON  evdb_users.ID = evdb_usermeta.user_id 
         AND evdb_usermeta.meta_key='phone_number'
       SET evdb_users.user_login='%s'
         , evdb_users.user_email='%s' 
         , evdb_users.display_name='%s' 
         , evdb_usermeta.meta_value='%s'
       WHERE evdb_users.ID=%d;
Bernd Buffen
  • 14,525
  • 2
  • 24
  • 39