繁体   English   中英

对于具有相同 from_address 的每一行,在列 contact_id 中找到最大值并将具有此 from_address 的每一行更新为最大 contact_id 值

[英]For each row with same from_address, find max value in column contact_id and update every row with this from_address to max contact_id value

我有一个数据库,其中包含与客户列表联系的表和一个表helpdesk_tickets ,其中每一行代表来自客户的一张帮助台票。

错误发生在软件中,并且在表联系人中创建了重复项(所有数据都相同,除了 id)。 实际上,在表helpdesk_tickets中,一些电子邮件被分配给了不同的客户 ID。 我想将来自同一电子邮件地址的所有票证分配给最新的client_id 这为我提供了每张票的最新client_id (基于helpdesk_tickets中的from_email列):

SELECT from_address,  MAX(contact_id) as a FROM helpdesk_tickets GROUP BY from_address HAVING COUNT(contact_id)>1;

现在我需要将具有相同from_address的每一行更新为上面选择的最大值。 如何?

您可以在此处使用更新连接:

UPDATE helpdesk_tickets ht1
INNER JOIN
(
    SELECT from_address, MAX(contact_id) AS max_contact_id
    FROM helpdesk_tickets
    GROUP BY from_address
) ht2
    ON ht2.from_address = ht1.from_address
SET
    contact_id = ht2.max_contact_id
WHERE
    contact_id <> ht2.max_contact_id;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM