Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
15-1299923817
Polevi
2011-03-12 12:56
2011.06.26
Solution explorer


2-1300360589
IgorB
2011-03-17 14:16
2011.06.26
Порядок отрисовки окон


2-1300637668
istok
2011-03-20 19:14
2011.06.26
enumerated types...


2-1300369713
irzyxa
2011-03-17 16:48
2011.06.26
Куда в файл можно записать свой идентификатор


15-1299749393
Юрий
2011-03-10 12:29
2011.06.26
С днем рождения ! 6 марта 2011 воскресенье





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский