Roman, du måste göra en fullständig yttre koppling på ditt val så att, för ett givet id för händelsetyp (och jag antar att du kommer att ha 0 eller 1 rad i både dina tidigare och framtida tabeller för ett visst id för händelsetyp), du kommer att mata ut en enda rad och lämpliga null- och icke-nulldatum.
Det första svaret kommer inte att kombinera datumen från de två källorna till en enda rad, vilket är vad jag tror att du bad om.
Det andra svaret var närmare, men skulle bara fungera för rader med både ett tidigare och ett framtida datum (dvs. ett i varje tabell) på grund av den inre kopplingen.
Exempel:
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
Observera att nvl-funktionen är för Oracle och kommer att använda den första icke-null som den ser. ISNULL kan användas för SQL Server.