【发布时间】:2014-03-29 22:31:14
【问题描述】:
数据库有 4 个表,下面是每个表的定义以及一些示例数据。
停止时间(这表示公共汽车在特定行程中沿路线的特定“停止”)
trip_id arrival_time departure_time stop_id stop_sequence
1 06:54:00 06:54:00 9400ZZMAABM1 0001
1 06:56:00 06:56:00 9400ZZMACRU1 0002
1 06:58:00 06:58:00 9400ZZMABOW1 0003
1 07:00:00 07:00:00 9400ZZMAHEA1 0004
1 07:02:00 07:02:00 9400ZZMAPWC1 0005
routes(这代表一条路线)
route_id route_short_name route_long_name
MET:MET2:I: 42 ALTRINCHAM - MANCHESTER - BURY
MET:MET2:O: 42 BURY - MANCHESTER - ALTRINCHAM
trips(这代表特定的巴士行程)
route_id trip_id trip_headsign
MET:MET2:I: 1 "Bury To Manchester"
MET:MET2:I: 2 "Manchester To Bury"
stops(这代表一个公共汽车站)
stop_id stop_code stop_name
0600MA0001 chegptg "Broken Cross, Fallibroome Road (cnr)"
0600MA0050 chegtjm "Macclesfield, opp Tesco"
0600MA0166 chemjat "Knutsford, Sugar Pit Lane (cnr)"
我想获得给定路线的所有站点。要做到这一点,我似乎必须加入来自路线、行程、停靠点和停靠点的数据,但我无法正确处理。这是我尝试过的查询:
SELECT
routes.route_id,
routes.route_short_name,
trips.trip_id,
stops.stop_id,
stops.stop_name
FROM routes
INNER JOIN trips ON routes.route_id=trips.route_id
INNER JOIN stops ON stop_times.stop_id=stops.stop_id
WHERE routes.route_short_name='42';
【问题讨论】:
-
你必须加入你的 stop_times 表