रोमन, आपको अपने चयन पर एक पूर्ण बाहरी जुड़ाव करने की आवश्यकता है ताकि, किसी भी घटना प्रकार आईडी के लिए (और मैं मान रहा हूं कि आपके पास किसी विशेष घटना प्रकार आईडी के लिए आपके अतीत और भविष्य दोनों तालिकाओं में 0 या 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 के लिए है और यह देखे जाने वाले पहले गैर-शून्य का उपयोग करेगा। SQL सर्वर के लिए ISNULL का उपयोग किया जा सकता है।