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

Помогите с запросом

Добавлено: 11 янв 2008, 03:59
wolk
В базе есть таблица А с одним полем а1 и 100 записями, и есть таблица Б с полями б1, б2 и 1000 записями. Надо пройти по всему столбцу б1 и если значение поля б1 есть в столбце а1 вносить запись в таблице Б в этой же стоке, но в поле б2.

Подскажите не могу разобраться как делать.

Пользуюсь IBExpert, SQLDialect базы 1.

Добавлено: 11 янв 2008, 08:51
СанЕк

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

Insert into Б (Б2) values(
select A1 from А where A1 in (select Б1 from Б)
)
что то вроде этого либо же процедуру хранимую.

Добавлено: 11 янв 2008, 09:16
DMA
Так insert или update таблицы B?

Добавлено: 11 янв 2008, 09:16
wolk
СанЕк писал(а):

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

Insert into Б (Б2) values(
select A1 from А where A1 in (select Б1 from Б)
)
что то вроде этого либо же процедуру хранимую.
спасибо но ето немного не то...

Щас поправлю

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

Добавлено: 11 янв 2008, 09:27
DMA
Тогда можно так:

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

update B set b2 = b1 where b1 in (select a1 from A)

Добавлено: 11 янв 2008, 11:34
WildSery
Применение IN необосновано.

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

... where exists (select * from A where a1 = b1)

Добавлено: 11 янв 2008, 12:17
DMA
Согласен.