2013-04-14 4 views
1

мне нужно запустить этот запрос:Целевая таблице не обновляемая ошибка

UPDATE (
    SELECT r.* 
    FROM booked r 
    INNER JOIN (
     SELECT a.st_code as from_t 
      , b.st_code as to_t 
     FROM `stops_at` a 
     CROSS JOIN `stops_at` b 
     WHERE (a.stop_no < b.stop_no) 
     and (a.train_no = b.train_no) 
     and (a.train_no = '11280') 
    ) new 
    ON (r.st_from = new.from_t) 
    and (r.st_to = new.to_t) 
    and r.date = '2013-04-16' 
    ) temp 
SET temp.seat_ac = temp.seat_ac-5 

но об исполнении он выдает ошибку:

# 1288-Мишень таблицы температуры в UPDATE не является обновляемым.

Любые решения?

ответ

2

Я думаю, что ваш синтаксис UPDATE неверен. См., Если это работает:

UPDATE booked r 
INNER JOIN (
    SELECT a.st_code as from_t 
     , b.st_code as to_t 
    FROM `stops_at` a 
    CROSS JOIN `stops_at` b 
    WHERE (a.stop_no < b.stop_no) 
    and (a.train_no = b.train_no) 
    and (a.train_no = '11280') 
    ) new 
ON r.st_from = new.from_t 
    and r.st_to = new.to_t 
    and r.date = '2013-04-16' 

SET r.seat_ac = r.seat_ac-5 
Смежные вопросы