【发布时间】:2014-01-01 04:36:43
【问题描述】:
我有以下疑问:
DELETE FROM table1
WHERE node_id = ".$id."
AND date < (
SELECT
(MAX(date)- INTERVAL 1 MONTH)
from table1
WHERE node_id = ".$id."
)
但是由于启用了 mysql 严格模式,我得到了错误:
ERROR 1093 (HY000): You can't specify target table 'table1' for update in FROM clause
在线调查后,我尝试重新创建查询,如下所示:
SELECT
*
FROM table1 as tb1
INNER JOIN table1 as tb2
on tb1.id = tb2.id
HAVING tb1.date < MAX(tb2.date)-INTERVAL 1 MONTH AND tb1.node_id = 1;
但是结果集返回的是空的。
我已将max(tb2.date) 更改为手动输入的日期,这给了我预期的结果。
有什么想法吗?
【问题讨论】:
-
尝试使用爱丽丝的名字作为表
-
谁!"£% 是爱丽丝?
标签: mysql max mysql-error-1093