2012-05-09 53 views
1

我有兩個表格,一個選項表(rot)具有一組房間的度量標準,另一個具有房間當前狀態(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

我一個解決方案搜索導致我使用別名,但我嘗試它都產生了嘗試的臨時表語法錯誤。任何幫助,將不勝感激。

+2

您正在使用什麼數據庫管理系統? – therealmitchconnors

+0

看起來像MySQL從逃脫 – JNK

+0

@therealmitchconnors基於它的錯誤它的MySQL –

回答

3

不能使用查詢,因爲它不是由MySQL在UPDATE子句

支持從13.2.10. UPDATE Syntax

Currently, you cannot update a table and select from the same table in a subquery.

而是嘗試以下方法

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` 
+0

這似乎工作!很好很簡單。非常感謝你。 – Mike

相關問題