Я согласен с Гордоном - боковое соединение - лучшее решение.
Если боковое соединение не поддерживается, решение на основе оконной функции может пригодиться.
with table1 (order_id, customer_id, date) as (
select 1, 1, date '2019-10-10' union
select 2, 1, date '2019-10-11' union
select 3, 2, date '2019-10-11' union
select 4, 2, date '2019-10-12' union
select 5, 3, date '2019-10-12'
), table2 (order_id, customer_id, date) as (
select 8, 1, date '2019-10-08' union
select 9, 1, date '2019-10-09' union
select 10, 1, date '2019-10-10' union
select 11, 2, date '2019-10-10' union
select 11, 2, date '2019-10-10' union
select 11, 2, date '2019-10-10'
), all_rows as (
select t1.*, t2.*, row_number() over (partition by t1.order_id order by t2.date desc) rn
from table1 t1
left join table2 t2 on t1.customer_id = t2.customer_id and t2.date < t1.date
)
select * from all_rows where rn = 1