访问:更改选择以删除查询

时间:2014-12-23 11:04:21

标签: sql vba ms-access

我确信这是一个简单的解决方案,但是目前令我感到困惑的是 - 基本上我想将此查询更改为删除查询

SELECT Raw_Log_Import_List.File_URL
FROM Imported_Log_List, Raw_Log_Import_List
WHERE ((Mid([Imported_Log_List].[File_URL],InStrRev([Imported_Log_List].[File_URL],"\")+1)= Mid([Raw_Log_Import_List].[File_URL],InStrRev([Raw_Log_Import_List].[File_URL],"\")+1)));

但是当我尝试将其作为删除版本运行时,我得到specify table error – specifying the table [Raw_Log_Import_List] then generates a syntax error

我尝试将其作为子查询运行 - 见下文

DELETE Raw_Log_Import_List.File_URL, *
FROM Raw_Log_Import_List
WHERE (((Raw_Log_Import_List.File_URL)=(SELECT Raw_Log_Import_List.File_URL
FROM Imported_Log_List, Raw_Log_Import_List
WHERE ((Mid([Imported_Log_List].[File_URL],InStrRev([Imported_Log_List].[File_URL],"\")+1)= Mid([Raw_Log_Import_List].[File_URL],InStrRev([Raw_Log_Import_List].[File_URL],"\")+1)));)));

然而,这会产生at most one record can be returned..错误。

我知道我可以通过为字符串操作创建另外两个计算字段来解决这个问题,但是,我很想学习如何使用常规删除或子查询来完成此工作

为你们的帮助干杯,欢呼你们

1 个答案:

答案 0 :(得分:0)

改进格式化如果要删除整行应该像

DELETE FROM Raw_Log_Import_List
WHERE (((Raw_Log_Import_List.File_URL)= 
 ( 
   SELECT Raw_Log_Import_List.File_URL
   FROM Imported_Log_List, Raw_Log_Import_List
   WHERE ((Mid([Imported_Log_List].[File_URL],InStrRev([Imported_Log_List].
   [File_URL],"\")+1)= Mid([Raw_Log_Import_List].[File_URL],
   InStrRev([Raw_Log_Import_List].[File_URL],"\")+1)));)
  ));