1

我正进入(状态

ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取正确的语法,以便在 '' at line 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)));

请帮我。

4

2 回答 2

2

最后缺少一个右括号 ) 。

于 2012-05-01T06:17:43.200 回答
2

正如手册所说:

目前,您无法在子查询中更新表并从同一个表中进行选择。

您可以使用多表更新语法和自联接解决此问题:

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
于 2012-05-01T06:47:21.873 回答