【发布时间】:2016-04-14 08:37:42
【问题描述】:
我正在尝试更新一列以在日期几乎是实际日期的记录中进行培训,并且此选择工作正常:
SELECT MIN(training_id) AS training_id, date FROM training_terms WHERE
date > CURRENT_DATE GROUP BY training_id
它会为每次培训提取最接近的日期,我想更新此选择中的“可见性”列,所以我尝试编写这样的语句:
UPDATE training_terms SET visible='1' IN (SELECT MIN(training_id)
AS training_id, date FROM training_terms WHERE date > CURRENT_DATE GROUP BY training_id);
但随后该错误出现在控制台(Linux)中:
You can't specify target table 'training_terms' for update in FROM clause
【问题讨论】:
-
您在这里使用的是 MySQL 还是 MS SQL Server?不要标记未涉及的产品。
-
你为什么用
Min(training_id)? It is not necessary, because ofGROUP BY`,你不聚合行...