Как мне указать таблицу, из которой должна быть удалена запись в Access с помощью JOIN? - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть таблица и запрос, qryAktuelleSchülerbilder содержит некоторые записи в tblSchülerbilder. Моя цель - удалить все записи из tblSchülerbilder, которых нет в qryAktuelleSchülerbilder. Я могу получить эти записи с помощью

SELECT tblSchülerbilder.*, qryAktuelleSchülerbilder.ID
FROM tblSchülerbilder
LEFT JOIN qryAktuelleSchülerbilder
ON tblSchülerbilder.ID = qryAktuelleSchülerbilder.ID
WHERE qryAktuelleSchülerbilder.ID Is Null;

. Теперь, когда я переключаюсь на запрос на удаление, представление конструктора в Access выглядит нормально (я не знаю, что он делает с SQL -просмотр в этой точке), он показывает tblSchülerbilder.* с Удалить: From и ID из qryAktuelleSchülerbilder с Удалить: Where и Критерии: Is Null. Но когда я выполняю запрос, он дает мне Specify the table containing the records you want to delete. (Error 3128).

. Я не знаю, куда снова поставить tblSchülerbilder, поскольку он уже установлен как delete из. Онлайновая статья не поможет, поскольку я уже указал tblSchülerbilder.* в операторе выбора.

1 Ответ

0 голосов
/ 08 апреля 2020

Вы можете сделать это с NOT IN:

DELETE FROM tblSchülerbilder
WHERE ID NOT IN (SELECT ID FROM qryAktuelleSchülerbilder)

или с NOT EXISTS:

DELETE FROM tblSchülerbilder AS t
WHERE NOT EXISTS (
  SELECT 1 FROM qryAktuelleSchülerbilder AS q
  WHERE q.ID = s.ID
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...