我已经尝试了很多不同的方法,但是在所有这些方法中都得到了奇怪的错误结果。我有一个事务主表:Transactions
和一个查询ArchiveDelete
,它从基于LastModifyDate
. 我想删除ConfirmationNumber
in Transactions
= ConfirmationNumber
in 的交易ArchiveDelete
。
我的第一次尝试很简单:
DELETE Transactions.*
FROM Transactions INNER JOIN ArchiveDelete ON Transactions.ConfirmationNumber = ArchiveDelete.ConfirmationNumber;
我收到一个错误:“无法从指定的表中删除。” 点击帮助是没有用的。我对这些表拥有完全的权利。我试图用谷歌搜索错误,一个建议是运行它:
DELETE Transactions.*
FROM Transactions Where Transactions.ConfirmationNumber in (Select ConfirmationNumber from ArchiveDelete)
但这需要很长时间,而且我没有一整天的时间进行简单的删除。我只需要删除 183 笔交易。
我还在这里尝试了使用 Exists 删除:How to delete in MS Access when using JOIN's?
DELETE Transactions.*
FROM Transactions
Where Exists(Select 1 from ArchiveDelete Where ArchiveDelete.ConfirmationNumber = Transactions.ConfirmationNumber) = True
但现在它想删除我表中的所有 47073 行,而不仅仅是匹配的 183 行。
我究竟做错了什么?为什么这么难?