2012-05-01 230 views
1

我越來越語法錯誤

ERROR 1064(42000):你在你的SQL語法錯誤;檢查對應於你的MySQL服務器版本正確的語法使用近「」在1' 號線 錯誤以下查詢

update Stops set trip_flag = true, 
    route_type = (select route_type from Routes 
       where route_id = (select route_id from Trips 
            where trip_id = (select trip_id from Stop_Times 
                where stop_id = (select stop_id from Stops where location_type = 0))); 

請幫我的手冊。

回答

2

結尾處有一個缺失的右括號)。

+0

雅謝謝mPrabhat,但現在我得到一個錯誤「ERROR 1093(HY000):你可以用」 t指定目標表'在FROM子句中更新'停止' – Deepu

2

由於the manual說:

目前,您不能更新表,並在子查詢中從同一個表中選擇。

您可以使用多個表更新的語法和解決這個自聯接:

UPDATE 
     Stops 
    JOIN Routes  ON Routes.route_type = Stops.route_type 
    JOIN Trips  ON Trips.route_id  = Routes.route_id 
    JOIN Stop_Times ON Stop_Times.trip_id = Trips.trip_id 
    JOIN Stops AS s2 ON s2.stop_id   = Stop_Times.stop_id 
SET 
    Stops.trip_flag = TRUE 
WHERE 
    s2.location_type = 0 
+0

嗨eggyal感謝回覆我會試試這個 – Deepu

+0

@DeepakPawar:我很好奇你爲什麼在接受它幾周後不接受這個答案,而是接受了一個答案以前評論沒有工作? – eggyal