Idealnie byłoby, gdyby wszystko było w tej samej tabeli z czymś w zapytaniu, aby uzyskać poprawną wersję, jednak należy zachować ostrożność, ponieważ nieefektywne zapytanie spowoduje dodatkowe obciążenie serwera. Jeśli normalnie wybrałbyś taki pojedynczy element:
SELECT * FROM your_table WHERE id = 42
Stałoby się to wtedy:
SELECT * FROM your_table
WHERE id = 42
AND date < '2010-10-12 15:23:24'
ORDER BY date DESC
LIMIT 1
Indeks (id, e_timestamp)
aby to działało wydajnie.
Wybieranie wielu wierszy w jednym zapytaniu jest trudniejsze i wymaga podejścia opartego na maksymalizacji grup, ale można to zrobić.