UPDATE datanyc_new t2
SET Prevclose = t1.Last
FROM datanyc t1
WHERE t2.Symbol = t1.Symbol
AND t2.`Timestamp` = '2020-01-03'
AND t1.`Timestamp` = ( SELECT max( Timestamp ) FROM datanyc WHERE Timestamp= '2020-01-03')
这是我使用的查询。
最佳答案
多表语法:对于mysql来说是
UPDATE [LOW_PRIORITY] [IGNORE] table_references
SET assignment_list
[WHERE where_condition]
https://dev.mysql.com/doc/refman/8.0/en/update.html
假设问题已正确标记,请尝试
UPDATE datanyc_new dn join datanyc d on dn.Symbol = d.Symbol
SET Prevclose = d.Last
WHERE dn.`Timestamp` = '2020-01-03'
AND d.`Timestamp` = ( SELECT max(Timestamp) FROM datanyc WHERE Timestamp= '2020-01-03');
我没有看到子查询的要点,或者可能是不正确的,如果时间戳列包含日期时间并且目的是获取 2020-01-03 的最后一次时间,那么 where 不正确并且将返回 null 你可能需要WHERE date(timestamp) = '2020-01-03'
关于mysql - 更新列显示 mysql 中的语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59728737/