Гость
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / удалить выбранное select'ом. как? / 6 сообщений из 6, страница 1 из 1
04.11.2003, 06:07
    #32314258
kamuzon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удалить выбранное select'ом. как?
Есть две таблицы
t1, -- используемое поле в запросе id, newbill, blockbill
t2, -- userid

как удалить из t2 строки where id=userid and newbill>=blockbill?

Пробовал уже многими вариантами, не получается объединить такой запрос в одном. Пользовать select id from t1 where newbill>=blockbill, а потом на каждый userid делать delete, как-то мягко говоря некрасиво.

Пробовал такой:
delete from t2 having userid = (select id from t1 where newbill<blockbill)
ругается так
Warning: SQL error: [IBM][CLI Driver][DB2/2] SQL0104N An unexpected token "from t2 having userid = (sele" was found following "delete ". SQLSTATE=42601
Разве после delete может быть ещё что-то, кроме from?

delete from only
Вообще не понял как строить запрос, если в запросе используются две таблицы.

Такой вариант тоже не прокатывает
WITH yubDEL (uid) AS (select id from t1,t2 where id=userid and newbill>=blockbill) delete from t2 where uid=userid
Ругается так:
Warning: SQL error: [IBM][CLI Driver][DB2/2] SQL0104N An unexpected token "delete" was found following "d newbill". SQLSTATE=42601


Как всё-таки выбрать из одной таблицы строки по условию в этой же таблице и удалить строки с соответсвующими идентификаторами во второй таблице в одном запросе?

DB2/2 v7.2 fix10a
...
Рейтинг: 0 / 0
04.11.2003, 06:38
    #32314263
Павел Воронцов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удалить выбранное select'ом. как?
Код: plaintext
1.
delete from t2 
where userid in (select id from t1 where newbill >= blockbill)
...
Рейтинг: 0 / 0
04.11.2003, 06:44
    #32314268
kamuzon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удалить выбранное select'ом. как?
Круто работает. Огромное спасибо.
Где в доке написано про этот where IN, в search-condition не нашёл. В where-clause так же нет этой информации. :-(
Есть ли ещё какие-нибудь суффиксы типа IN?
...
Рейтинг: 0 / 0
04.11.2003, 07:01
    #32314271
kamuzon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удалить выбранное select'ом. как?
Нашёл IN Predicate

Есть ли где-нибудь русская дока, а то сложно учить английский на доке по DB2.
...
Рейтинг: 0 / 0
04.11.2003, 07:57
    #32314288
Павел Воронцов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удалить выбранное select'ом. как?
Возьмите книжку Грубера по SQL. Для начала
...
Рейтинг: 0 / 0
04.11.2003, 09:00
    #32314318
kamuzon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удалить выбранное select'ом. как?
Спасибо за помощь.
На этом сайте нашёл Мартина Грабера. 4ыре книги. Видимо http://www.sql.ru/books/book.aspx?bkid=110 самая последняя. Возьму её.
Ещё раз спасибо.
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / удалить выбранное select'ом. как? / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]