在 MySQL 中,我正在尝试使用表上的连接进行更新,并收到 1093 错误。这是我正在使用的代码:
UPDATE fdd_test AS fdd1
INNER JOIN fdd_test AS fdd2
ON fdd2.Trade_Date = (
SELECT MAX(fddsub.Trade_Date)
FROM fdd_test fddsub
WHERE fddsub.Trade_Date < fdd1.Trade_Date)
SET fdd1.Prior_Pct_UpDn_Since_Open = fdd2.Pct_UpDn_Since_Open,
fdd1.Prior_14_Day_MFI = fdd2.14_Day_MFI
WHERE fdd1.Symbol = 'A' ;
我也尝试过使用这种语法,但这会产生编译错误:
UPDATE fdd_test AS fdd1
SET fdd1.Prior_Pct_UpDn_Since_Open = fdd2.Pct_UpDn_Since_Open,
fdd1.Prior_14_Day_MFI = fdd2.14_Day_MFI
INNER JOIN fdd_test AS fdd2
ON fdd2.Trade_Date = (
SELECT MAX(fddsub.Trade_Date)
FROM fdd_test fddsub
WHERE fddsub.Trade_Date < fdd1.Trade_Date)
WHERE fdd1.Symbol = 'A' ;
您还应该注意,别名也引用同一个表。我基本上是在尝试用前一行的数据更新表中一行的数据(按日期计算)。
我怎样才能让它工作?