Ich habe zwei Tabellen namens recordund record_history. Für jeden Datensatz kann es mehr als einen Verlauf geben. Sie können durch idund verbunden werden record_id. Ich möchte alle recordEinträge mit den neuesten record_historyDaten erhalten. Ich habe die Abfrage wie folgt erstellt:
SELECT rec.id, rec.name, rech1.data AS last_history_data
FROM record rec
LEFT OUTER JOIN record_history rech1 ON (rec.id = rech1.record_id)
LEFT OUTER JOIN record_history rech2 ON (rec.id = rech2.record_id AND rech2.ts > rech1.ts)
WHERE rech2.id IS NULL
ORDER BY rec.id DESC
Hier bekomme ich die neueste von ts. Dies funktioniert, solange keine doppelten tsEinträge vorhanden sind. Wenn der letzte Zeitstempel in wiederholt wird record_history, gibt diese Abfrage mehr als eine Zeile für einen Datensatz zurück. Wie können wir das Limit hier auf der linken Verknüpfung anwenden, um doppelte Zeilen einzuschränken?
rech2wird hier verwendet, wählen Sie die erste record_history und mein Bedürfnis nach rech2 soll seinNULL