贝利信息

MySQL Update Left Join 更新最大值:如何使用子查询从多条数据中获取最大值并更新特定字段?

日期:2024-11-04 00:00 / 作者:心靈之曲

mysql update left join 更新最大值

问题:

如何使用 mysql update 语句和 left join 从多条数据中获取最大值并更新另一个表的特定字段?

例子:

我们有 student 表:

id name score
1 小明 null
2 小红 null

以及 score 表:

id student_id score
1 1 80
2 2 88
3 1 78
4 2 98

我们的目标是更新 student 表的 score 字段为 score 表中每个 student_id 对应的最大 score 值。

解答:

使用 left join 和子查询可以实现此目的:

update student set score=(select max(score) from score where score.student_id=student.id)

解释: