我有以下任务:
我需要创建一个显示第一次飞行及其转机航班的视图。
在此示例中,FlightNo 1& 2。
-
我的航班表:
FlightNo---Date--------StartTime---ArrivingTime---StartPort---DestinationPort
1. ----2014-11-20---01:00:55-----02:00:34----------a----------------b
2. ----2014-11-20---02:10:55-----03:00:34----------b----------------c
3. ----2014-11-20---20:00:55-----21:00:34----------x----------------q
4. ----2014-11-20---00:00:55-----01:00:34----------a----------------u
...
我的代码到目前为止:
create OR REPLACE view FlightConnection as
select* FROM Flight a
where exists (select* FROM Flight b
where a.StartPort = b.DestinationPort and
a.ArrivingTime < b.StartTimet);
我的输出:
FlightNo---Date--------StartTime---ArrivingTime---StartPort---DestinationPort
---1 ----2014-11-20---01:00:55-----02:00:34----------a----------------b
-
但我需要FlightNo 1和2。 我尝试了几种不同的东西,但我认为我暂时愚蠢。
请帮助。 (对不起我的英文)
答案 0 :(得分:0)
您需要执行(自 - )JOIN
以获取包含有关可能连接的两个航班的数据的结果行。这应该让你开始:
CREATE OR REPLACE VIEW FlightConnection AS
SELECT *
FROM Flight a
JOIN Flight b
ON a.DestinationPort = b.StartPort
AND a.Date = b.Date
AND a.ArrivingTime < b.StartTime