我是初学者并试图解决这些查询,但没有任何人可以帮助我。
以下关系跟踪航空公司航班信息:
create table flights(
flno number(10) primary key,
ffrom varchar2(50),
fto varchar2(50),
distance number(10),
departs varchar2(50),
arrivs varchar2(50),
price number(10,2)
);
create table aircraft(
aid number(10) primary key,
aname varchar2(50),
cruisingrange number(10)
);
create table employees(
eid number(10) primary key,
ename varchar2(50),
salary number(10,2)
);
create table certified(
eid number(10) references employees(eid),
aid number(10) references aircraft(aid)
);
航班 +------+-------------+----------+---------+------ ---+--------+-------+ | 弗诺 | F来自 | Fto | 距离 | 出发 | 到达 | 价格 | +------+-------------+----------+---------+------ ---+--------+-------+ | 第1234章 洛杉矶 | 檀香山 | 1100 | 9:15 | 21:45 | 25000 | | 第1235章 洛杉矶 | 檀香山 | 1100 | 11:20 | 22:15 | 15000 | | 第1236章 洛杉矶 | 德里 | 3100 | 6:45 | 23:45 | 25000 | | 第1237章 伦敦 | 纽约 | 2400 | 7:25 | 21:00 | 35000 | +------+-------------+----------+---------+------ ---+--------+-------+ 飞机 +-----+-------+----------------+ | 援助| 姓名 | 巡航范围| +-----+-------+----------------+ | 1 | BB111 | 2000 | | 2 | AA123 | 5000 | | 3 | AA555 | 900 | | 4 | BB777 | 500 | +-----+-------+----------------+ 雇员 +-----+-------+--------+ | 开斋节 | 姓名 | 工资 | +-----+-------+--------+ | 301 | 啊 | 14000 | | 302 | BB | 12000 | | 303 | 抄送 | 25000 | | 304 | dd | 5000 | | 305 | 易| 50000 | | 306 | ff | 15000 | | 307 | ggg | 65000 | +-----+-------+--------+ 认证 +-----+-----+ | 开斋节 | 援助 | +-----+-----+ | 301 | 1 | | 302 | 3 | | 303 | 2 | | 306 | 4 | | 307 | 1 | +-----+-----+
Employee 关系也描述了飞行员和其他类型的雇员;每个飞行员都获得了某些飞机的认证,只有飞行员获得了飞行认证。
我正在尝试以下查询
找出工资低于从洛杉矶到火奴鲁鲁的最便宜航线价格的飞行员的姓名。
对于所有航程超过 1000 英里的飞机,找到飞机的名称和所有获得该飞机认证的飞行员的平均工资。
我尝试查询第一个作为
select ename from employees full natural join certified
where
salary <(select min(price) from flightsz where ffrom='los angles' and fto='honolulu');