2015-09-30 62 views
1

我創建了兩個臨時表並使用以下代碼將它們連接在一起,但遇到ERROR 1064 near 'LEFT JOIN'錯誤1064靠近'LEFT JOIN'

(SELECT DISTINCT routes.route_short_name, MIN(stop_times.stop_sequence) AS first_stop, stops.stop_name AS first_stop_name 
FROM trips 
JOIN routes ON ... 
JOIN stop_times ON ... 
JOIN stops ON ... 
JOIN calendar ON ... 
GROUP BY stop_times.trip_id) first_table 
LEFT JOIN 
(SELECT DISTINCT routes.route_short_name, MAX(stop_times.stop_sequence) AS last_stop, stops.stop_name AS last_stop_name 
FROM trips 
JOIN routes ON ... 
JOIN stop_times ON ... 
JOIN stops ON ... 
JOIN calendar ON ... 
GROUP BY stop_times.trip_id) last_table 
ON first_table.route_short_name = last_table.route_short_name; 

期望的結果是這樣的:

route_short_name, first_stop_name, last_stop_name 
... 

回答

2

你不缺少實際的主select語句?

SELECT route_short_name, first_stop_name, last_stop_name FROM --this part is missing 
(SELECT DISTINCT ...) first_table 
LEFT JOIN 
(SELECT DISTINCT ...) last_table 
ON first_table.route_short_name = last_table.route_short_name; 
+0

Thx。有用。正如你所提到的那樣,新的表名是什麼來代替'SOMETHING'? – SparkAndShine

+0

@SparkandShine它不是表名,「SOMETHING」代表你想要選擇的列,它取決於你。 – yurib

+1

@SparkandShine你應該根據你的問題選擇你希望在輸出中顯示的列,它是'route_short_name,first_stop_name,last_stop_name',請參閱更新回答 – yurib