[英]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.