-我正在对表中的列执行更新。但是,我希望仅根据该表中另一列的最大日期对行执行更新。如下所示,每当日期为 DATE 列中的最大值时,通常需要更新 Category 列。
现在这有点手动工作,因为我必须明确定义日期,如下面的代码所示。 我希望代码类似于“仅当日期为最大时更新”。
日期格式为 YYYY-MM-DD
Product Number Date category
A 2018-01-01 x
B 2019-01-01 y
C 2020-01-01 z
D 2021-01-01
UPDATE SALES_TOTAL LEFT JOIN Masterdata_MAPEBIAS on SALES_TOTAL.`Product Number` = Masterdata_MAPEBIAS.`Item` and Date = '2021/01/01'
SET
SALES_TOTAL.`Category` = Masterdata_MAPEBIAS.Category;
最佳答案
加入获取最大日期的子查询。我还使用别名来使查询更易于阅读
UPDATE sales_total t
LEFT JOIN Masterdata_MAPEBIAS m ON t.`Product Number` = m.item
JOIN (SELECT MAX(date) max_date FROM sales_total) max ON max.max_date = t.sales_date
SET t.category = m.category
关于mysql - 如何根据另一列MySQL的最大日期更新一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54495921/