1

私は得ています

エラー1064(42000):SQL構文にエラーがあります。次のクエリの「1行目」エラーの近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。

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 に答える