suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Aktualisieren Sie die Spalte „contact_id“ jeder Zeile mit derselben from_address auf den Maximalwert

Ich habe eine Datenbank mit einer Tabelle namens Kontakte, die eine Liste von Kunden enthält, und einer Tabelle namens helpdesk_tickets, in der jede Zeile ein Helpdesk-Ticket eines Kunden darstellt.

Die Software hat einen Fehler festgestellt und Duplikate in der Kontakttabelle erstellt (alle Daten außer der ID sind gleich). Tatsächlich sind in der helpdesk_tickets表中,一些电子邮件被分配给不同的客户id。我希望将所有具有相同电子邮件地址的工单分配给最新的client_id。这给我每个工单的最新client_id(基于helpdesk_tickets中的from_email-Tabelle einige E-Mails unterschiedlichen Kunden-IDs zugeordnet. Ich möchte, dass alle Tickets mit derselben E-Mail-Adresse der neuesten client_id zugewiesen werden. Dadurch erhalte ich die neueste client_id für jedes Ticket (basierend auf der Spalte from_email in

):

SELECT from_address, MAX(contact_id) as a FROM helpdesk_tickets GROUP BY from_address HAVING COUNT(contact_id)>1;
from_addressJetzt muss ich jede Zeile mit dem gleichen

auf den oben ausgewählten Maximalwert aktualisieren. Wie erreichen? 🎜
P粉835428659P粉835428659467 Tage vor648

Antworte allen(1)Ich werde antworten

  • P粉994092873

    P粉9940928732023-09-17 13:25:39

    你可以在这里使用更新连接:

    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;
    

    Antwort
    0
  • StornierenAntwort