2012-01-30 26 views
0

我有兩個表data1和data2。 Data1包含2列,emailaddress和name,但名稱列是空的。MySQL在表2中找到匹配記錄時將數據插入到表1中

emailaddress name 
email1 
email2 
email3 

數據2包含還包含2列,EMAILADDRESS和名稱,並且比數據1多個條目

email address name 
email1   name1 
email1b   name1b 
email2   name2 
email2b   name2b 
email3   name3 
email3b   name3b 

我想寫的電子郵件地址欄從數據1和數據2進行比較的SQL查詢,並且當它找到匹配項時,來自Data2的關聯名稱將被插入到data1的相應名稱字段中。

數據1就應該是這樣的查詢已運行

emailaddress name 
email1   name1 
email2   name2 
email3   name3 

我似乎無法弄清楚如何做到這一點了。任何幫助非常感謝。

回答

1

試試這個:

UPDATE data1 a, Data2 b 
SET a.name= b.name 
WHERE a.emailaddress = b.emailaddress 
+0

這正是我正要輸入。 – 2012-01-30 03:51:08

+0

@ nolt2232 完美!這很好。感謝您的幫助。 但最後一件事,'a'和'b'到底做了什麼?這些變量是? – user1177227 2012-01-30 04:01:35

+0

它們只是表名的別名。只是一個快捷方式,您可以輸入「a」而不必在任何地方輸入「Data1」。 – nolt2232 2012-01-30 04:05:24

0

試試這個

這隻顯示連接表的結果。

SELECT a.emailaddress, 
     b.name 
FROM Data1 a INNER JOIN Data2 b 
       ON a.EmailAddress = b.emailaddress 

UPDATE

此查詢更新數據1表。

UPDATE a 
    SET a.name = b.name 
    FROM Data1 a INNER JOIN Data2 b 
       ON a.EmailAddress = b.emailaddress 
相關問題