Heim > Datenbank > MySQL-Tutorial > Wie kann ich die neueste Zeile einer historischen Tabelle in MySQL effizient verknüpfen?

Wie kann ich die neueste Zeile einer historischen Tabelle in MySQL effizient verknüpfen?

Linda Hamilton
Freigeben: 2025-01-02 15:39:40
Original
486 Leute haben es durchsucht

How to Efficiently Join the Most Recent Row from a Historical Table in MySQL?

Verknüpfen mit der aktuellsten Zeile in MySQL

Bei zwei Tabellen, customer und customer_data, wobei letztere eine historische Aufzeichnung von Kundenänderungen enthält, besteht die Aufgabe darin, sie abzurufen Kundeninformationen und stellen Sie gleichzeitig sicher, dass nur der aktuellste Eintrag aus customer_data mit jedem Kunden in der Kundentabelle verknüpft wird.

Um dies zu erreichen, sollten Sie die Verwendung der WHERE-Klausel anstelle der Klausel in Betracht ziehen Hauptabfragetext, da er eine bessere Leistung und Lesbarkeit des Codes bietet. Hier ist eine optimierte Abfrage:

SELECT c.*,
       CONCAT(title, ' ', forename, ' ', surname) AS name
FROM customer c
LEFT JOIN customer_data d
ON c.customer_id = d.customer_id
WHERE d.customer_id = (
    SELECT MAX(customer_id)
    FROM customer_data
    WHERE customer_id = c.customer_id
)
LIMIT 10, 20;
Nach dem Login kopieren

Diese Abfrage stellt sicher, dass für jeden Kunden in customer nur die aktuellste Zeile aus customer_data verknüpft wird, indem sie innerhalb der WHERE-Klausel gefiltert wird. Der LEFT JOIN stellt sicher, dass alle Kunden von customer in die Ergebnisse einbezogen werden, auch wenn sie keinen entsprechenden Eintrag in customer_data haben.

Was Ihre Bedenken hinsichtlich der gemeinsamen Verwendung von CONCAT und LIKE betrifft, haben Sie Recht. CONCAT verkettet Zeichenfolgen und die resultierende Zeichenfolge kann mit dem LIKE-Operator zum Durchführen eines Mustervergleichs verwendet werden. Ihre Anfrage ist in dieser Hinsicht berechtigt.

Das obige ist der detaillierte Inhalt vonWie kann ich die neueste Zeile einer historischen Tabelle in MySQL effizient verknüpfen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage