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 )
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:
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!