我有問題使用外連接寫這個問題的查詢。我可以在沒有外連接的情況下寫這個,但是它給外連接帶來一些困難。使用外連接難點
問:
有關「2018年1月1日」每次飛行,發現所有這一切都沒有保留的座位(使用外連接)。對於每個無保留的座位,請顯示航班號和座位號。
我有如下表:
create table passenger (
passenger_ID varchar (10) ,
passenger_name varchar (30) ,
passenger_city varchar (30) ,
primary key (passenger_ID)) ;
create table flight (
flight_number varchar (10) ,
departure_airport varchar (10),
arrival_airport varchar (10) ,
primary key (flight_number));
create table seat (
flight_number varchar (10),
seat_number varchar (10),
primary key(flight_number, seat_number),
foreign key(flight_number) references flight);
create table reservation(
passenger_ID varchar (10),
flight_number varchar (10),
seat_number varchar (10),
day date ,
fare numeric(8,2),
primary key (flight_number, seat_number,day),
foreign key (flight_number, seat_number) references seat ,
foreign key (passenger_ID) references passenger);
請看看這個SQL小提琴。我已經構建了這個模式。 [http://sqlfiddle.com/#!17/feaca/1
查詢,我現在是:
Select distinct a.flight_number , a.seat_number
from
seat a
left outer join
reservation b
on
a.flight_number = b.flight_number
and
a.seat_number <> b.seat_number
where b.day = to_date('2017-10-01','YYYY-MM-DD')
order by 1;
任何建議和幫助,將不勝感激。
我刪除了Oracle標籤,因爲SQL小提琴使用的Postgres。 –
@GordonLinoff你可以看看這個問題。我真的被困在這。 –
什麼對您的查詢不起作用?錯誤?不想要的結果? 2018年的明年1月1日真的嗎?此外,什麼非外部查詢的作品?請張貼它。 – Parfait