Para encontrar la marca de tiempo más reciente, primero use el operador de comparación para descartar futuras marcas de tiempo. A continuación, ordene por el intervalo más pequeño restando los posibles candidatos de marca de tiempo de su marca de tiempo deseada. Para obtener solo el resultado más reciente, limite 1.
Para obtener la tabla2 val
columna para mostrar con las columnas de la tabla 1, solo necesita ejecutar el mismo código para la tabla 2 dentro de una subconsulta.
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;