2017-02-13 21 views
0

У меня есть этот запрос, BadCustomerIDQuery, который возвращает список идентификаторов клиентов для удаления из отдельной таблицы CustomerIDTable.Не удается удалить из таблицы с присоединением в MS Access

Однако я не могу заставить его работать без ошибок, таких как «Не удалось удалить указанную таблицу» или «указать таблицу, содержащую записи, которые вы хотите удалить»

ПОПЫТКА:

DELETE CustomerIDTable.* 
FROM CustomerIDTable 
INNER JOIN BadCustomerIDQuery ON BadCustomerIDQuery.CustomerID = CustomerIDTable.CustomerID 

ответ

0

You могу просто использовать IN:

DELETE FROM CustomerIDTable 
WHERE CustomerID IN (SELECT CustomerID FROM BadCustomerIDQuery) 
+0

Это не займет много времени (<1 сек), чтобы открыть либо CustomerID таблицы или BadCustomerIDQuery (таблица имеет 4k записи, и запрос прямо сейчас имеет 1, поэтому он должен просить меня удалить 1 строку), и все же навсегда требуется выполнение этого; есть ли более быстрый способ сделать то же самое? – user7559994

+1

Является ли 'CustomerID' индексом? Чтобы сказать, откройте таблицу в режиме проектирования и найдите поле. В нижней части поля Свойства «Индексировано» выбрано как * Да * или * Нет *? Попробуйте работать как * Да *. – Parfait