Roman, Anda perlu melakukan penggabungan luar penuh pada pilihan Anda sehingga, untuk id jenis acara apa pun (dan saya berasumsi bahwa Anda akan memiliki 0 atau 1 baris di tabel masa lalu dan masa depan Anda untuk id jenis acara tertentu), Anda akan menampilkan satu baris, dan tanggal null dan non-null yang sesuai.
Jawaban pertama tidak akan menggabungkan tanggal dari dua sumber menjadi satu baris, yang saya yakin Anda minta.
Jawaban kedua lebih dekat, tetapi hanya akan berfungsi untuk baris dengan tanggal yang lalu dan yang akan datang (yaitu:satu di setiap tabel) karena gabungan dalam.
Contoh:
insert into event_target (event_type_id, past_event_date, future_event_date)
select nvl(p.event_type_id, f.event_type_id), p.event_date, f.event_date
from
events_source_1 p full outer join
events_source_2 f on p.event_type_id = f.event_type_id
Perhatikan bahwa fungsi nvl adalah untuk Oracle dan akan menggunakan non-null pertama yang dilihatnya. ISNULL dapat digunakan untuk SQL Server.