Форум: "Базы";
Текущий архив: 2011.06.26;
Скачать: [xml.tar.bz2];
ВнизУдаление записей в access Найти похожие ветки
← →
pavel_guzhanov © (2009-12-18 14:09) [0]В базе есть две таблицы, t1 и t2
В них есть поля firstname, lastname и middlename
Мне надо удалить из таблицы t1 все записи, которые совпадают с записями таблицы t2.
Пишу такой запрос:
delete from [t1]
where [t1].[firstname]=[t2].[firstname] and [t1].[lastname]=[t2].[lastname] and [t1].[middlename]=[t2].[middlename]
При запуске получаю предложение ввести значения параметров [t2].[firstname], [t2].[lastname], [t2].[middlename].
Но я ведь в запросе не использую параметров, почему он у меня их требует? Как сделать запрос, чтобы все-таки он сработал?
PS Скобки в запросе пробовал удалять, ничего не меняется.
← →
clickmaker © (2009-12-18 14:21) [1]delete from [t1]
from [t1] as t, [t2]
where t.[firstname]=[t2].[firstname] and t.[lastname]=[t2].[lastname] and t.[middlename]=[t2].[middlename]
← →
Сергей М. © (2009-12-18 14:23) [2]> я ведь в запросе не использую параметров
А откуда Access знает что [t2].[чего-то-там] - это не параметр ?
Таблица t2 в тексте запроса должна фигурировать в INNER JOIN-присоединении (по всем полям, подлежащим сравнению на совпадение) к таблице t1, а у тебя жто присоединение напрочь отсутствует.
Вот Access и предполагает, что ты в запросе указывает имена параметров.
Т.е. статья WHERE здесь никомим образом фигурировать не должна, а вместо нее должно быть INNER JOIN t2 ON .. и далее вся та петрушка, которая у тебя фигурирует в выражении для WHERE-статьи.
← →
pavel_guzhanov © (2009-12-18 14:58) [3]
> clickmaker ©
delete from [t1]
from [t1] as t, [t2]
where t.[firstname]=[t2].[firstname] and t.[lastname]=[t2].[lastname] and t.[middlename]=[t2].[middlename]
на это получаю сообщение, что ошибка в выражении FROM
> Сергей М. ©
написал вот так -
delete from t1
inner join t2 on t1.firstname=t2.firstname and t1.lastname=t2.lastname and t1.middlename=t2.middlename
получаю сообщение, что надо указать таблицу, содержащую удаляемые записи.
← →
sniknik © (2009-12-18 15:06) [4]> написал вот так -
по моему так нужно, если правильно помню
delete t1.* from t1
...
← →
sniknik © (2009-12-18 15:12) [5]> Т.е. статья WHERE здесь никомим образом фигурировать не должна,
да в общем то по большому счету это одно и тоже, с inner просто более однозначные запросы получаются (имхо), и более функциональнее (нет в jet синтаксиса +=, =+, и д.р.), а в простых случаях можно и так и так.
← →
Anatoly Podgoretsky © (2009-12-18 15:12) [6]> pavel_guzhanov (18.12.2009 14:09:00) [0]
Откуда предложение то?
Что то на правду не похоже.
Или ты с Акцессом через COM работаешь?
Формат команды DELETE ты уже конечно в справке посмотрел?
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2011.06.26;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.004 c