Heim > Datenbank > MySQL-Tutorial > Wie wähle ich mithilfe von JOINs nur die aktuellste Zeile aus einer verwandten Tabelle in MySQL aus?

Wie wähle ich mithilfe von JOINs nur die aktuellste Zeile aus einer verwandten Tabelle in MySQL aus?

Susan Sarandon
Freigeben: 2025-01-01 13:12:11
Original
885 Leute haben es durchsucht

How to Select Only the Most Recent Row from a Related Table in MySQL using JOINs?

Nur ​​die aktuellste Zeile über MySQL JOIN AUSWÄHLEN

Im Zusammenhang mit der Verknüpfung von Tabellen zum Zugriff auf Kundendaten kann es vorkommen, dass Sie auf Situationen stoßen, in denen Sie möchten um nur den neuesten Eintrag aus einer zugehörigen Tabelle abzurufen. Dies kommt vor allem in Szenarien vor, in denen historische Daten gespeichert werden. Glücklicherweise bietet MySQL mehrere Ansätze, um dies zu erreichen.

Eine Methode beinhaltet die Verwendung einer korrelierten Unterabfrage innerhalb der WHERE-Klausel. Bei diesem Ansatz wird auf den Alias ​​der übergeordneten Tabelle verwiesen, um die passende Zeile aus der untergeordneten Tabelle abzurufen. Zum Beispiel:

SELECT c.*,
FROM client AS c
LEFT JOIN client_calling_history AS cch ON cch.client_id = c.client_id
WHERE
   cch.cchid = (
      SELECT MAX(cchid)
      FROM client_calling_history
      WHERE client_id = c.client_id AND cal_event_id = c.cal_event_id
   )
Nach dem Login kopieren

Diese Abfrage ruft nur den neuesten Anrufverlaufsdatensatz für jeden Client ab.

Außerdem haben Sie die Verwendung von CONCAT innerhalb eines LIKE-Prädikats erwähnt. Diese Verwendung ist in MySQL gültig und ermöglicht Ihnen die Suche nach Teilzeichenfolgen innerhalb verketteter Spaltenwerte.

In Ihrer ersten Abfrage haben Sie einen INNER JOIN verwendet, der übereinstimmende Zeilen aus beiden Tabellen zurückgibt. Allerdings haben Sie auch Unsicherheit über den geeigneten JOIN-Typ geäußert. Hier eine kurze Erklärung:

  • INNER JOIN: Ruft Zeilen ab, die in beiden Tabellen übereinstimmen.
  • LEFT JOIN: Ruft alle Zeilen ab die linke Tabelle, auch wenn in der rechten keine Übereinstimmungen vorhanden sind Tabelle.
  • RIGHT JOIN: Ähnlich wie LEFT JOIN, ruft jedoch alle Zeilen aus der rechten Tabelle ab.
  • FULL JOIN: Kombiniert INNER JOIN und OUTER JOINS, gibt alle Zeilen aus beiden Tabellen zurück.

Auswahl des richtigen JOIN Der Typ hängt von Ihren spezifischen Abfrageanforderungen ab.

Das obige ist der detaillierte Inhalt vonWie wähle ich mithilfe von JOINs nur die aktuellste Zeile aus einer verwandten Tabelle in MySQL aus?. 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