Aby znaleźć najnowszy znacznik czasu, najpierw użyj operatora porównania, aby wykluczyć przyszłe znaczniki czasu. Następnie uporządkuj według najmniejszych odstępów, odejmując możliwych kandydatów na znacznik czasu od żądanego znacznika czasu. Aby uzyskać tylko najnowszy wynik, ogranicz 1.
Aby uzyskać tabelę2 val
kolumna do wyświetlenia z kolumnami tabeli 1, wystarczy uruchomić ten sam kod dla tabeli 2 w podzapytaniu.
SELECT update_time AS time, id1, id2, val, (
SELECT val from table2
WHERE '2004-10-19 10:04:00' >= update_time
ORDER BY '2004-10-19 10:04:00' - update_time
LIMIT 1
)
FROM table1 WHERE '2004-10-19 10:04:00' >= update_time
ORDER BY '2004-10-19 10:04:00' - update_time
LIMIT 1;