Ответ 1
Изменить; Исправлен ответ, чтобы вернуть все столбцы из таблицы2.
Сначала вы должны получить вторую таблицу, выбрав max (datetime), а затем присоединитесь к состоянию, которое вы дали.
Здесь вторая таблица t2
создаст строку_имя на основе значения max(datetime)
для каждого BelongTo
. Благодаря этому answer для него.
select t1.*,t2.idx,t2.belongTo,t2.datetime1
from table1 t1
inner join
(
select t11.idx,t11.belongTo,t11.datetime1,count(*) as row_number from
table2 t11
inner join table2 t12
on t11.belongTo=t12.belongTo
and t11.datetime1 <= t12.datetime1
group by t11.belongTo,t11.datetime1
) t2 /*this table will create row_number based on max datetime value for each belongTo*/
on t1.idx=t2.belongTo
where t2.row_number=1
Смотрите демоверсию SQL Fiddle здесь