Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.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
Database 查询更新整个表_Database_Ms Access - Fatal编程技术网

Database 查询更新整个表

Database 查询更新整个表,database,ms-access,Database,Ms Access,这是我数据库中的查询 UPDATE NewCustomer INNER JOIN ACTList ON NewCustomer.NewProvider<>ACTList.Provider SET NewCustomer.Status = "Denied Not Freemail"; 在NewCustomer.NewProviderACTList.Provider SET NewCustomer.Status=“拒绝非免费邮件”上更新NewCustomer内部加入ACTL

这是我数据库中的查询

UPDATE NewCustomer INNER JOIN ACTList ON NewCustomer.NewProvider<>ACTList.Provider SET       NewCustomer.Status = "Denied Not Freemail";
在NewCustomer.NewProviderACTList.Provider SET NewCustomer.Status=“拒绝非免费邮件”上更新NewCustomer内部加入ACTList;
正如您所看到的,应该更新的记录只有NewCustomer.Provider不等于ACTList.Provider的记录,但它实际上正在更新所有字段

有人能告诉我这是为什么吗?

试试:

UPDATE NewCustomer 
SET NewCustomer.Status = "Denied Not Freemail"
FROM NewCustomer INNER JOIN ACTList 
WHERE NewCustomer.NewProvider<>ACTList.Provider;
更新新客户
SET NewCustomer.Status=“拒绝非免费邮件”
来自NewCustomer内部联接ACTList
其中NewCustomer.NewProviderACTList.Provider;
试一试(未经测试)。它基本上是说
WHERE NewCustomer.NewProvider不在()
,但效率更高

UPDATE NewCustomer 
  SET NewCustomer.Status = "Denied Not Freemail"
LEFT JOIN ACTList ON NewCustomer.NewProvider = ACTList.Provider 
WHERE ACTList.Provider IS NULL

您的查询选择了所有行,因为每一行都不等于ActList中的至少一行。可以使用外部联接并检查空值

UPDATE NewCustomer LEFT JOIN ACTList ON NewCustomer.NewProvider = ACTList.Provider SET NewCustomer.Status = "Denied Not Freemail"
WHERE (((ACTList.Provider) Is Null));

内部联接不需要ON子句吗?它表示缺少运算符或提供的任何答案都有帮助吗?如果是这样的话,你应该投一个或多个赞成票并接受一个。