Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.08.03;
Скачать: [xml.tar.bz2];

Вниз

Удаление множества записей (SQL, Access)   Найти похожие ветки 

 
Сашик   (2008-07-06 17:23) [0]

Можно ли на SQL составить запрос на удаление множества записей из одной таблицы по определенному критерию


 
Anatoly Podgoretsky ©   (2008-07-06 17:36) [1]

Можно.


 
Тын-Дын ©   (2008-07-06 17:37) [2]

DELETE FROM MyTable WHERE Field1=1


 
Сашик   (2008-07-06 18:41) [3]

Ха-Ха...Ситуация такая: основная таблица работает со справочником. После сеанса хочу удалить все записи в справочнике, не использованные в основной таблице. Для поиска пустых строк в критерии использую LEFT JOIN. Пока ничего не поучается. Может кто поможет?


 
Сашик   (2008-07-06 18:58) [4]

Использую запрос

DELETE FROM DATADOC WHERE EXISTS (SELECT * FROM DATADOC
LEFT JOIN INITMAIN ON DATADOC.NN = INITMAIN.LFILEDOC WHERE INITMAIN.LFILEDOC Is NULL)

Удаляются все записи в DATADOC. Применять IN нельзя. Как все-таки удалить за один проход?


 
sniknik ©   (2008-07-06 19:08) [5]

удаляется именно то что запрошено, отобранное во внутреннем запросе...
выполни его отдельно и удостоверься что все записи из DATADOC там присутствуют... и почитай после про объеденения, что именно означает LEFT JOIN к примеру.


 
Сашик   (2008-07-06 19:17) [6]

Насколько я понимаю, при использовании EXISTS, если хоть одно значение  подзапросом возвращается, то выполняется основной опрератор. Я понимаю почему удаляются все записи. Меня интересует, можно ли как нибудь изменить конструкцию запроса?


 
Сашик   (2008-07-06 21:49) [7]

Сообразил...Оказывается можно IN!

DELETE * FROM INITTAB WHERE INITTAB.IDINI IN (SELECT INITTAB.IDINI FROM INITTAB LEFT JOIN INITMAIN ON INITTAB.IDINI = INITMAIN.IDINI WHERE INITMAIN.IDINI Is NULL)

Очищает таблицу от хлама. Вопрос закрыт...


 
sniknik ©   (2008-07-06 22:52) [8]

> Насколько я понимаю, при использовании EXISTS, если хоть одно значение  подзапросом возвращается, то выполняется основной опрератор
пока еще тебе надо не "понимать", а изучать основы, возьми любую книгу по sql и почитай что делает EXISTS, тока реально почитай. не так как последовал совету почитать про объединения...

> Сообразил...
"соображаешь" еще хуже чем чем понимаешь... запрос получился просто чудо как хорош... для орешника.

> Вопрос закрыт...
очень хорошо, а то ломает объяснять тому кто не слушает.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2008.08.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.007 c
2-1214945141
Casper
2008-07-02 00:45
2008.08.03
Можно ли нарисовать прозрачный эллипс на изображении?


2-1214909067
Casper
2008-07-01 14:44
2008.08.03
Отмена последнего действия


2-1214849705
blazerad
2008-06-30 22:15
2008.08.03
Ввод пароля


2-1214826534
Ciberrus
2008-06-30 15:48
2008.08.03
Rave Report BE 5.0


11-1191869034
Jon
2007-10-08 22:43
2008.08.03
WM_THEMECHANGED





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский