Jede Seite in meinem System hat mehrere page_objects. Ich muss die last_changed Datensätze meiner page_objects pro Seite zurückgeben.Abfrage max (Datum) mit Gruppe, indem nicht auf SELECT ... IN?
DB-Auswirkungen zu verringern, ich habe eine SELECT ... IN Abfrage jedes zuletzt bearbeitet page_object pro Seite zurückzukehren:
SELECT object, f_page_id, page_object_id, last_change
FROM page_objects
WHERE f_page_id IN (page_id1, page_id2, page_id3, etc...) GROUP BY f_page_id
ORDER BY last_change ASC;
Natürlich ist dies nicht funktioniert, weil GROUP BY
vor ORDER BY
angewendet wird, also habe ich die Abfrage:
SELECT object, f_page_id, page_object_id, max(UNIX_TIMESTAMP(last_change))
FROM page_objects
WHERE f_page_id IN (page_id1, page_id2, page_id3, etc...) GROUP BY f_page_id
Aber dies noch nicht das letzte bearbeitet page_object
pro page_id zurückgibt.
Was mache ich falsch?
versuchen Sie es mit Unterabfrage. obwohl es maximalen und minimalen Wert für Gruppe auswählt, gibt es die erste f_page_id innerhalb der Gruppe zurück. – Faraz