UPDATE reservation SET flag = "1" WHERE ipAddress = (SELECT ipAddress FROM reservation WHERE endDate < CURRENT_TIMESTAMP);
我试图使用此查询来更改日期已过期的预订表中这些条目的标志列。标志列默认为0.所以即时尝试将过期一次更改为1以进行识别。
我收到以下错误。
ERROR 1093 (HY000): You can't specify target table 'reservation' for updatein FROM clause
有人可以建议解决这个问题..
答案 0 :(得分:3)
如果你在subselect中使用相同的表,你可以完全省略subselect。 为什么不用以下代替
UPDATE reservation
SET flag = "1"
WHERE endDate < CURRENT_TIMESTAMP
答案 1 :(得分:3)
您不需要内部SELECT
。您只需根据flag
endDate
状态
UPDATE reservation
SET flag = "1"
WHERE endDate < CURRENT_TIMESTAMP