Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.08.03;
Скачать: CL | DM;

Вниз

Удаление множества записей (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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.02 c
2-1214779198
Андрей_1
2008-06-30 02:39
2008.08.03
Exel в Paradox


2-1215085766
lead-in
2008-07-03 15:49
2008.08.03
CreateProcess


2-1214939769
maxon
2008-07-01 23:16
2008.08.03
Как создать и работать с двухмерным динамическим масивом?


4-1194052713
Kemuri
2007-11-03 04:18
2008.08.03
Буфер чтения для ReadFile


15-1213690421
No_Dead (work)
2008-06-17 12:13
2008.08.03
Проблемы с монитором