MySQL 如何使用 MIN 进行更新

标签 mysql

我正在尝试使用另一个表中的最小日期值更新一个表。

我已经尝试过:

UPDATE `profiles` AS t1
INNER JOIN (SELECT MIN(attendance_data.Logdate) min_date 
FROM attendance_data) t2 ON t1.user_id=T2.user_id 
SET t1.first_scan_date=t2.min_date

并在“on 子句”中获取未知列“t2.user_id”

还有

UPDATE `profiles`  t1 
SET first_scan_date = (SELECT MIN(t2.Logdate) 
FROM attendance_data t2 
WHERE t1.user_id = t2.user_id 

有什么建议吗?

最佳答案

试试这个:

UPDATE `profiles` AS t1
INNER JOIN (SELECT user_id, MIN(attendance_data.Logdate) min_date 
FROM attendance_data 
group by user_id) t2 ON t1.user_id=T2.user_id 
SET t1.first_scan_date=t2.min_date

请注意,内连接的右侧表达式将返回特定 user_idlogdate 的最小值,而不是整体最小值。

如果您只想将配置文件中的所有值设置为最短日期,请尝试以下操作:

UPDATE `profiles` AS t1    
SET t1.first_scan_date= (SELECT MIN(attendance_data.Logdate) min_date FROM attendance_data)

关于MySQL 如何使用 MIN 进行更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23078385/

相关文章:

php - 将多个图像 URL 存储在数据库中的一行中

mysql连接产品类别多关系查询

mysql - 什么时候在 MySQL IN 子句中使用字符串被认为太多了?

mysql - 使用 INNER JOIN 有什么好处?

mysql 查询 - 如何查找一对的部分是否有共同特征

mysql - 将空字符作为空字符串导入 CSV 数据库

php - MYSQL:按周间隔分组,大于星期一

java - 使用 Quarkus Reactive MySQL Clients/io.vertx.mysqlclient 进行服务器故障转移

php - sql查询条件

MySQL 查询对表进行联接,其中第二个表名称来自第一个表中的列