Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何根据另一列的最大日期更新一列_Mysql - Fatal编程技术网

Mysql 如何根据另一列的最大日期更新一列

Mysql 如何根据另一列的最大日期更新一列,mysql,Mysql,-我正在对表中的一列执行更新。但是,我希望tp仅基于该表中另一列的MAX date对行执行更新。从下面可以看出,每当日期列中的日期为最大值时,通常需要更新类别列 现在,这有点像手工操作,因为我必须像下面的代码中那样明确定义日期。 我想代码是像更新只有当日期是最大的东西 日期格式为YYYY-MM-DD Product Number Date category A 2018-01-01 x B 2019-01-01 y

-我正在对表中的一列执行更新。但是,我希望tp仅基于该表中另一列的MAX date对行执行更新。从下面可以看出,每当日期列中的日期为最大值时,通常需要更新类别列

现在,这有点像手工操作,因为我必须像下面的代码中那样明确定义日期。 我想代码是像更新只有当日期是最大的东西

日期格式为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;

针对获取最大日期的子查询进行联接。我还使用alias使查询更易于阅读

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

我真的想不出你为什么会在一个update@strawberry每个月我都会向这个表中添加新数据,但是有一列,即Category是空的,因为我需要从另一个包含此信息的静态查找表中获取此信息。因此,我需要一个更新和一个左连接来完成这项工作。然后将此表加载到Tableau中。你有别的建议吗?对不起。我无法理解这种逻辑。