Try this approach:
select *
from A
join B
on A.somedata1
between
B.somedata2 - interval 10 minute
and
B.somedata2 + interval 10 minute
Demo --> http://www.sqlfiddle.com/#!2/d7ed9/1
----------- EDIT ---------------
Here is a demo with an example how to select the closest match
---> http://www.sqlfiddle.com/#!2/4b86b/12
SELECT id1, somedata1, id2, somedata2
FROM (
select id1, somedata1,
min( abs( time_to_sec( somedata1 ) -
- time_to_sec( somedata2 ))) d_min
from A
join B
on A.somedata1
between
B.somedata2 - interval 10 minute
and
B.somedata2 + interval 10 minute
GROUP BY id1
) xx
JOIN B
ON xx.somedata1
between
B.somedata2 - interval 10 minute
and
B.somedata2 + interval 10 minute
AND abs( time_to_sec( somedata1 ) -
- time_to_sec( somedata2 ))
<= d_min