Страница 1 из 1

Помогите с запросом удаления

Добавлено: 28 сен 2007, 03:54
wolk
Всем доброго времени суток.
У меня следующая ситуация:
Есть 2 таблицы master и docum.
В таблице master есть строки к которым относятся несколько строк из таблицы docum.
Мне надо удалить все строки из таблицы docum, которые принадлежат к строкам в таблице master, с текстом в поле notereg начинающимся со слов "возв".
Подойдет этот запрос???

delete
from docum
where docum.id in (select docum.id from master, docum
where master.notereg starting 'возв' and docum.id=master.id)


Я его запускал, он вроде работает, но я до конца не уверен.

Добавлено: 28 сен 2007, 07:10
AnryGTR
всё нормально запрос подойдёт...тем более ты его сам поверил! :wink:

Добавлено: 28 сен 2007, 11:03
belov-evgenii
to wolk
Коллега из СП?
Вот так лучше будет

Код: Выделить всё

delete from docum
where exists (select docum.id
              from docum join master on docum.id = master.id
              where master.notereg starting with 'возв')

Добавлено: 29 сен 2007, 23:00
Slavik
Автору: Запрос логически верен ("но я до конца не уверен" :) ). Если нужна скорость выполнения, то сравни планы обоих запросов и выбери тот, который больше нравится. А ещё лучше delete выполнять в процедуре или блоке в цикле for select.

Добавлено: 29 сен 2007, 23:27
belov-evgenii
Да разовая операция, поэтому пофигу