2012-05-01 3 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

Смежные вопросы