Обновление Oracle на основе значения из другой таблицы - PullRequest
0 голосов
/ 17 ноября 2011

У меня есть две таблицы ROOMS и LEASE, как описано ниже

create table ROOMS (ROOM_NUM number, FLOOR varchar2(50))
create table LEASE (ROOM_NUM number, RENT_RATE number(4,2))

Я хочу установить значение rent_rate в таблице LEASE равным 3,50 для всех комнат, в которых FLOOR = 'Carpet' в таблице ROOMS.

Я просмотрел МНОГИЕ примеры, но не могу найти решение.

Я понимаю, что я не создавал первичные или внешние ключи ROOM_NUM, но я просто использую 3 записи для тестапроблема и убедитесь, что номера комнат существуют в обеих таблицах

Ответы [ 3 ]

1 голос
/ 17 ноября 2011
update lease
   set rent_rate = 3.50
where room_num in(select room_num from rooms where FLOOR='Carpet');

Надеюсь, это поможет.

1 голос
/ 17 ноября 2011
UPDATE LEASE
SET RENT_RATE = 3.5
WHERE ROOM_NUM IN (SELECT ROOM_NUM FROM ROOMS WHERE FLOOR='Carpet')
0 голосов
/ 17 ноября 2011

И, если вам нужно создать строки вместо обновления существующих строк:

INSERT INTO LEASE
(SELECT ROOM_NUM, 3.5 FROM ROOMS WHERE FLOOR = 'Carpet');
...