当Table2中找到匹配的记录时,MySQL将数据插入Table1

时间:2012-01-30 03:07:25

标签: mysql database merge

我有两个表data1和data2。 Data1包含2列,emailaddress和name,但name列为空。

emailaddress    name
email1
email2
email3

Data2 Contains还包含2列,emailaddress和name,并且条目多于data1

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

我正在尝试编写一个SQL查询,用于比较Data1和Data2中的电子邮件地址列,当找到匹配项时,Data2中的关联名称将插入到data1的相应名称字段中。

在查询运行后,Data1应如下所示

emailaddress    name
email1          name1
email2          name2
email3          name3

我似乎无法弄清楚如何做到这一点。任何帮助非常感谢。

2 个答案:

答案 0 :(得分:1)

尝试一下:

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

答案 1 :(得分:0)

试试这个

仅显示已连接表的结果。

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

更新

此查询更新Data1表。

    UPDATE a 
    SET  a.name = b.name
    FROM Data1 a INNER JOIN Data2 b 
               ON a.EmailAddress = b.emailaddress