У меня есть две таблицы, которые выглядят следующим образом.
Таблица 1:
video_ref_raw_media_id | start_seconds | end_seconds | step
ABC001 | 0:00 | 0:30 | 1
ABC001 | 0:31 | 1:30 | 2
ABC001 | 1:31 | 2:30 | 3
ABC002 | 0:00 | 0:35 | 1
ABC002 | 0:36 | 1:46 | 2
ABC002 | 1:47 | 2:44 | 3
Таблица 2:
video_ref_raw_media_id | start_seconds | end_seconds | label
ABC001 | 0:10 | 0:11 | green
ABC001 | 0:15 | 0:16 | black
ABC001 | 1:45 | 1:46 | green
ABC002 | 0:20 | 0:21 | red
Я хочу присоединить таблицу 1 к таблице 2 основаны на 1 video_ref_raw_media_id и 2 основаны на шаге в таблице 1. Единственный способ сделать это, если метка, которая была применена в таблице 2, произошла во временном интервале шага в таблице 1 (между start_seconds и end_seconds) , Надеюсь, в этом есть какой-то смысл.
Я думаю, sql будет выглядеть примерно так:
Select * from
"Table 1"
LEFT JOIN "Table 2" on "Table 1".video_ref_raw_media_id="Table 2".video_ref_raw_media_id and (Table2.start_seconds>=Table1.start_seconds and Table2.end_seconds<=Table1.end_seconds)
Однако это не работает. Есть идеи?
Идеальный выход:
video_ref_raw_media_id | start_seconds | end_seconds | step | label
ABC001 | 0:00 | 0:30 | 1 | green
ABC001 | 0:00 | 0:30 | 1 | black
ABC001 | 0:31 | 1:30 | 2 | null
ABC001 | 1:31 | 2:30 | 3 | green
ABC002 | 0:00 | 0:35 | 1 | red
ABC002 | 0:36 | 1:46 | 2 | null
ABC002 | 1:47 | 2:44 | 3 | null