Możesz spróbować czegoś takiego
Select A.ID,
(SELECT B.ID FROM B
WHERE A.EventTime BETWEEN B.start_time AND B.end_time LIMIT 1) AS B_ID
FROM A
Jeśli masz indeks w polach Start_Time,End_Time dla B, to powinno działać całkiem dobrze.
Możesz spróbować czegoś takiego
Select A.ID,
(SELECT B.ID FROM B
WHERE A.EventTime BETWEEN B.start_time AND B.end_time LIMIT 1) AS B_ID
FROM A
Jeśli masz indeks w polach Start_Time,End_Time dla B, to powinno działać całkiem dobrze.