ローマン、あなたはあなたの選択で完全な外部結合を行う必要があります。そうすれば、与えられたイベントタイプIDに対して(そして私はあなたが特定のイベントタイプIDの過去と未来のテーブルの両方に0または1行を持っていると仮定しています)、単一の行と、適切なnullおよびnull以外の日付を出力します。
最初の答えは、2つのソースからの日付を1つの行に結合しません。これは、あなたが求めていたと私が信じていることです。
2番目の答えはより近いものでしたが、内部結合のため、過去と未来の両方の日付(つまり、各テーブルに1つ)の行に対してのみ機能します。
例:
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
nvl関数はOracle用であり、最初に検出されたnull以外を使用することに注意してください。 SQLServerにはISNULLを使用できます。