表结构如下:
航班(flight){ID(flight_id),起飞城市ID(start_city_id) ,降落城市ID(end_city_id),起飞时间(start_time)}
城市(city){城市ID(city_id),城市名称(city_name)}
1、查询起飞城市是北京的所有航班,按到达城市的名字排序
select *
from flight f
left join city sc on sc.city_id = f.start_city_id
left join city ec on ec.city_id = f.end_city_id
where
sc.city_name = '北京'
order by ec.city_name
2、查询北京到上海的所有航班纪录(起飞城市,到达城市,起飞时间,航班号)
select sc.city_name, ec.city_name, f.start_time, flight_id
from flight f
left join city sc on sc.city_id = f.start_city_id
left join city ec on ec.city_id = f.end_city_id
where
sc.city_name = '北京'
and ec.city_name = '上海'
3、查询具体某一天(2005-5-8)的北京到上海的的航班次数
select count(*)
from flight f
left join city sc on sc.city_id = f.start_city_id
left join city ec on ec.city_id = f.end_city_id
where
sc.city_name = '北京'
and ec.city_name = '上海'
and f.start_time >= to_date('2005-05-08','yyyy-mm-dd')
and f.start_time < to_date('2005-05-08','yyyy-mm-dd') + 1