1

2つのテーブルがあります。1つは部屋のセットのメトリックを含むオプションテーブル(rot)で、もう1つは部屋の現在の状態(rt)を持ちます。rotに保存されている値を使用してrtのcost_to_dateを更新する毎日のイベントが必要です。

SQLを試したとき:

UPDATE room_tbl SET COST_TO_DATE_rt = COST_TO_DATE_rt + (
SELECT PerDiem_rot FROM room_options_tbl, room_tbl 
WHERE `ROOM_OPT_ID_rot` = `ROOM_OPT_ID_rt` 
    AND `ADULT_COUNT_rot` = `ADULT_COUNT_rt`)

エラーが発生します:#1093 - You can't specify target table 'room_tbl' for update in FROM clause

解決策を探していたところ、エイリアシングを使用して一時テーブルを試してみましたが、それを試みた結果、すべて構文エラーが発生しました。どんな助けでもいただければ幸いです。

4

1 に答える 1

3

クエリは更新句でMySQLによってサポートされていないため、使用できません

13.2.10から。UPDATE構文

現在、テーブルを更新して、サブクエリで同じテーブルから選択することはできません。

代わりに、次を試してください

UPDATE room_options_tbl, room_tbl
SET COST_TO_DATE_rt = COST_TO_DATE_rt + PerDiem_rot 
WHERE `ROOM_OPT_ID_rot` = `ROOM_OPT_ID_rt` 
    AND `ADULT_COUNT_rot` = `ADULT_COUNT_rt`
于 2012-05-09T20:01:10.413 に答える