"Nearby" je poněkud nejasné.
Připojit se k table2 kde timee leží do 10 sekund od dateee v budoucnu:
SELECT *
FROM table1 t1
LEFT JOIN table2 t2 ON t2.timee BETWEEN t1.dateee
AND t1.dateee + interval '10 sec';
-
LEFT JOINuchovává řádky ztable1ve výsledku i bez shody vtable2. -
Může existovat více shod, takže každý řádek ze základních tabulek lze vrátit vícekrát v různých kombinacích.
Alternativa
Chcete-li spojit jednotlivé řádky v table1 na řádek s s nejbližší vyšší časovou značkou. Přesně jeden řádek ve výsledku na řádek v table1 :
SELECT *
FROM table1 t1
LEFT JOIN LATERAL (
SELECT *
FROM table2 t2
WHERE t2.timee >= t1.dateee
ORDER BY t2.timee
LIMIT 1
) ON TRUE;
Index na (timee) je zásadní pro výkon.