外部結合を使用してこの質問のクエリを書く際に問題が発生しています。私は外部結合なしでこれを書くことができますが、それは私に外部結合でいくつかの困難な時間を与えます。外部結合を使用するのが難しい
質問:「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;
任意の提案やヘルプは高く評価されます。
SQLのフィドルはPostgresのを使用していますので、私はOracleのタグを削除しました。 –
@ GordonLinoffこの問題を見てください。私は本当にこれにこだわりました。 –
あなたのクエリについては何が問題になりませんか?エラー?望ましくない結果はありますか?そして、それは本当に来年の1月1日、2018ですか?また、どの外部クエリでも機能しますか?投稿してください。 – Parfait