0

I have a Wordpress table in which I want to take the user_email from Table2 and import it to contact_email on Table1 one based off of the user_login. user_login and user_id equal the same value. Nothing I have tried has worked. Any thoughts?

Table1

  user_id|contact_email |contact_name
 =======================================
 123     |[email protected] |deft
 124     |[email protected]|deft3



Table2 (User table)

 user_login|user_email     |display_name
 =======================================
 123       |[email protected]  |deft
 124       |[email protected] |deft3

I have tried:

        UPDATE Table1
        SET contact_email = (SELECT Table2.user_email
                 FROM Table2
                 WHERE Table2.user_login = user_id )
        WHERE EXISTS (SELECT Table2.user_email
                 FROM Table2
                 WHERE Table2.user_login = user_id );
1
  • Your query seems correct. What problem did you face? Mar 30, 2018 at 23:46

2 Answers 2

0

You can use next syntax:

update tbl1
join   tbl2
on     tbl1.user_id = tbl2.user_login
set    tbl1.contact_email = tbl2.user_email;
select * from tbl1;
user_id | contact_email  | contact_name
------: | :------------- | :-----------
    123 | [email protected]  | deft        
    124 | [email protected] | deft3       

dbfiddle here

3
  • FYI - OP has reposted under a registered account here; using this UPDATE statement evidently generated an error.
    – RDFozz
    Mar 30, 2018 at 19:40
  • @RDFozz I've seen. Why evidently?
    – McNets
    Mar 30, 2018 at 19:41
  • I'm assuming he had issues editing this post - this user is unregistered, the new one is registered. I suggested merging accounts.
    – RDFozz
    Mar 30, 2018 at 19:44
0

This should do it. Update your table inner join the second table based on ids. Then we set the email from one table to the other where the ids are the same. Hope it helps.

UPDATE tbl1
INNER JOIN tbl2 ON tbl2.user_login = tbl1.user_id
SET tbl1.contact_email = tbl2.user_email;  

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.