mysql - 如何根据另一列MySQL的最大日期更新一列

标签 mysql

-我正在对表中的列执行更新。但是,我希望仅根据该表中另一列的最大日期对行执行更新。如下所示,每当日期为 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/

相关文章:

javascript - 用于保存解析的 csv 公交路线数据的数据结构

mysql - 在 Windows 上对 mysql 进行基准测试

mysql - 在 MySQL select 语句中,我可以拆分文本列,然后将各部分求和为 float 吗?

mysql - Sequelize 插入级联

php - MYSQL 错误 - 使用 PHP For LOOP

PHP Insert In 语句总是失败

c# - 列名不能为空

php在stmt准备和执行语句后获取结果

php - 添加数值计数以获取数组php

mysql - 如何查看MySQL全文索引的索引内容?