当表A电子邮件等于表B电子邮件时,更新表A中的某一列

时间:2014-05-11 21:47:18

标签: mysql sql

表B包含以下列:Email Address 和表A包含以下列:email

如何将表A newsletter更新为= 0,其中A。Email Address = B。email

我试过以下似乎失败了:

UPDATE TableA 
SET TableA.newsletter = 0
FROM TableB, TableA
WHERE TableA.email = TableB.Email Address

3 个答案:

答案 0 :(得分:0)

这是在使用密钥

更新连接2个表的数据时查询的样子
update 
TableA t1
inner join TableB t2 on t2.`Email Address` = t1.email
set t1.newsletter = 0

答案 1 :(得分:0)

您只是缺少TableB.Email地址列的反引号,只要您有特殊字符或空格,就需要为columns \ tablenames \ schemas添加反引号。

UPDATE
TableA A, TableB B
SET A.newsletter = 0
WHERE A.email = B.`Email Address`

答案 2 :(得分:0)

使用子查询

UPDATE TableA ta
SET TableA.newsletter = 0
WHERE `Email Address` IN
(SELECT email FROM TableB WHERE email = ta.`Email Address`)