我有问题使用外连接写这个问题的查询。我可以在没有外连接的情况下写这个,但是它给外连接带来一些困难。使用外连接难点
问:
有关“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