gpt4 book ai didi

mysql - 将最新时间戳从一个表复制到另一个表

转载 作者:行者123 更新时间:2023-11-30 00:21:56 24 4
gpt4 key购买 nike

我正在尝试通过匹配联系人 ID 将最新时间戳从一个表中的行复制到另一个表。基本上我有一个通话记录表,我想在我的联系人表中添加一列,其中包含该联系人最近一次通话的时间戳。相关列是:

contact.leadId => callrecord.cid, contact.lastcall => callrecord.time

这是一种一对多关系,因为每个联系人只有一行,但通话记录表可能包含该联系人的多行。

我已经尝试过这个:

UPDATE contact 
JOIN callrecord ON contact.leadId = callrecord.cid
SET contact.lastcall = MAX(callrecord.time)
WHERE 1

但我收到一条错误消息“组函数的使用无效”。

有谁知道有什么方法可以做到这一点吗?

最佳答案

您可以先进行聚合:

UPDATE contact c JOIN
(select cid, MAX(cr.time) as maxtime
from callrecord
group by cid
) cr
ON c.leadId = cr.cid
SET c.lastcall = MAX(cr.time) ;

使用 callrecord(cid, time) 上的索引,以下内容应该表现得更好:

UPDATE contact c
SET c.lastcall = (SELECT MAX(time) FROM callrecord cr WHERE c.leadId = cr.cid);

为了保持这一点,您应该在 callrecord 上有一个 insert 触发器(也许还有 updatedelete > 也会触发)。

关于mysql - 将最新时间戳从一个表复制到另一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23163627/

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