所以我有3个表的预订,航班和机场,我需要根据预订所在的城市(城市领域在机场)来更新预订价格。
以下是我的创建表,以显示表之间的链接:
create table airport
(airport_code varchar(100) primary key,
city varchar(100),
country varchar(100) );
create table flight
(flight_code varchar(100) primary key,
dept_airport_code varchar(100),
arr_airport_code varchar(100),
foreign key (dept_airport_code) references airport (airport_code),
foreign key (arr_airport_code) references airport (airport_code) );
create table reservation
(flight_code varchar(100),
reservation add price integer);
根据以前对类似问题的回答,这是我到目前为止一直尝试的方法,并且无效。
update reservation r inner join flight f on r.flight_code=f.flight_code
inner join airport a on f.dept_airport_code=a.airport_code
set r.price=4000 where a.city='Dubai';
这给了我这个错误:ORA-00971:缺少SET关键字
我认为这是因为Oracle不接受此语法,而这些答案是针对MySQL的。
答案 0 :(得分:0)
我不了解Oracle语法,但是您可以尝试使用T-SQL方式:
update r
set r.price=4000
from reservation
inner join flight f on r.flight_code=f.flight_code
inner join airport a on f.dept_airport_code=a.airport_code
where a.city='Dubai'
我希望这行得通!
新年快乐!