2

以下のクエリでは、「#1093 - FROM 句での更新にターゲット テーブル 'reservation_seats' を指定できません」というエラーが表示されます。

DELETE 
FROM reservation_seats 
WHERE id IN ( SELECT id 
              FROM reservation_seats 
              WHERE reservation_id NOT IN ( SELECT id FROM reservation)
            );

テーブル構造:

reservation_seats - id,reservation_id,seat_no
reservation       - id,txn_id,name......
reservation table(id) column is used as the foreign in the reservation_seats table.
(reservation.id = reservation_seats.reservation_id )

その理由と修正方法を教えてください。

ありがとう

4

2 に答える 2

4

MySQL では、選択しているテーブルから削除することはできません。試す

DELETE FROM reservation_seats
WHERE id IN ( 
              select * from 
              (
                   SELECT id FROM reservation_seats
                   WHERE reservation_id NOT IN ( SELECT id FROM reservation)
              )
);

とにかくそれを行うためにMySQLをだます。ところで、これはこのようにもっと簡単にすることができます

DELETE FROM reservation_seats
WHERE reservation_id NOT IN ( SELECT id FROM reservation)
于 2012-08-22T06:32:06.610 に答える
1

予約なしで座席を削除したい

DELETE FROM reservation_seats
WHERE  reservation_id NOT IN (SELECT id
                              FROM   reservation);
于 2012-08-22T06:35:11.243 に答える