Циклы в MS Access для удаления строк - PullRequest
0 голосов
/ 24 июня 2019

Я хочу удалить все строки в таблице, которые содержат определенный код в столбце, который содержит коды. Пример:

Name     Code
John     3581
Alex     3132
Jake     2123

В другой таблице у меня есть коды, которые соответствуют определенному ключевому слову. У некоторых из имен есть код, который соответствует моему ключевому слову выбора, который я хочу исключить. Это выглядит примерно так Пример:

Code    Keyword
3132    apple
2123    apple
4921    banana

Допустим, я хочу только отфильтровать яблоко из таблицы имен. Как бы я это сделал?

Я попытался настроить цикл, но я думаю, вы не можете сделать это в MS Access. Кроме того, я хотел попробовать WHERE.

Это то, что я имел в виду

DELETE table1 where table1.numbers = table2.numbers;

Я просто не уверен, как выполнить этот код.

Ответы [ 2 ]

0 голосов
/ 24 июня 2019

Вы также можете использовать in, чтобы избежать коррелированного подзапроса:

delete from table1 t1 where t1.code in 
(select t2.code from table2 t2 where t2.keyword = 'apple')

Здесь table1 - это таблица, содержащая Name & Code, а table2 - это таблица, содержащая Code & Keyword - измените имена этих таблиц в соответствии с вашими данными.

0 голосов
/ 24 июня 2019

Если вы хотите удалить из table1 строки с Code, которые в table2 имеют Keyword apple, вы можете сделать это с помощью EXISTS:

DELETE FROM table1 t1
WHERE EXISTS (
  SELECT 1 FROM table2 t2
  WHERE t1.Code = t2.Code AND t2.Keyword = 'apple'
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...