удалить при соединении не работает, как ожидалось оракул - PullRequest
0 голосов
/ 10 мая 2018

Мне трудно заставить свою работу удалиться. Мне нужно удалить на основе двух столбцов в этом случае, когда строка существует в исходной таблице.

У меня 113843 строки в таблице. Мое заявление об удалении:

delete from process.designer_mm_px_current_state 
where exists (select 1 from process.designer_mm_px_current_state dc
join
process.mm_px_current_state c
on dc.soid = c.soid and dc.state_id = c.state_id)

Сообщает об удалении 113843 строк. Но я вставил новую строку только в dc, поэтому у меня должна быть одна строка в конце. Кроме того:

select count(1) from process.designer_mm_px_current_state dc
join
process.mm_px_current_state c
on dc.soid = c.soid and dc.state_id = c.state_id

возвращает 113842 строки. Как я и ожидал. Чего мне не хватает? Я работаю в системе оракула ...

1 Ответ

0 голосов
/ 10 мая 2018

У вас нет ссылки между вашим внутренним и внешним запросом. Попробуйте это вместо этого. Dc теперь ваша внешняя ссылка.

delete from process.designer_mm_px_current_state dc
where exists (select 1 from
process.mm_px_current_state c
Where dc.soid = c.soid and dc.state_id = c.state_id)
...