Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 当表a电子邮件等于表B电子邮件时,更新表a中的某一列_Mysql_Sql - Fatal编程技术网

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

Mysql 当表a电子邮件等于表B电子邮件时,更新表a中的某一列,mysql,sql,Mysql,Sql,表B有以下栏:电子邮件地址 表A有以下列:email 如何将表A时事通讯更新为=0,其中A.电子邮件地址=B.电子邮件 我尝试了以下方法,但似乎失败了: UPDATE TableA SET TableA.newsletter = 0 FROM TableB, TableA WHERE TableA.email = TableB.Email Address 这就是使用键连接两个表时更新数据时查询的外观 update TableA t1 inner join TableB t2 on t2.`

表B有以下栏:
电子邮件地址
表A有以下列:
email

如何将表A
时事通讯更新为=0,其中A.
电子邮件地址
=B.
电子邮件

我尝试了以下方法,但似乎失败了:

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

这就是使用键连接两个表时更新数据时查询的外观

update 
TableA t1
inner join TableB t2 on t2.`Email Address` = t1.email
set t1.newsletter = 0

您只是缺少TableB.Email Address列的倒勾,任何时候您有特殊字符或空格时,都需要为columns\tablenames\schema添加倒勾

UPDATE
TableA A, TableB B
SET A.newsletter = 0
WHERE A.email = B.`Email Address`
使用子查询

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