gpt4 book ai didi

mysql - 使用来自另一个表的 JOIN 进行更新并获取最新的

转载 作者:行者123 更新时间:2023-11-30 00:31:53 26 4
gpt4 key购买 nike

我有一个 user 表,与 log 表具有一对多关系。

本质上,每次更新用户记录时,都会将一条记录插入到日志表中。

现在我想做的是使用最新的日志条目更新用户表,将其当前状态和注释字段设置为最近记录的。

log
id
user_id
status
notes
datetime

user
id
status
notes


下面的查询几乎可以工作,只是它获取日志表中的第一个条目。

UPDATE user u 
INNER JOIN log l
ON u.user_id = l.user_id
SET u.`status` = l.`status`, u.notes = l.notes

我希望它能获得最新的,无论是基于datetime字段还是仅仅基于最大id

最佳答案

在 UPDATE 语句的 WHERE 子句中选择 MAX(id),如下所示:

UPDATE 
u
SET
u.status = l.status,
u.notes = l.notes
FROM
user u
INNER JOIN log l ON u.user_id = l.user_id
WHERE
l.id = (
SELECT
MAX(id)
FROM
log
WHERE
user_id = u.user_id);

关于mysql - 使用来自另一个表的 JOIN 进行更新并获取最新的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22445433/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com