/ / Oracle: T1 इन्टर से जुड़ें T2 जहाँ T3 में तारीख है, लेकिन T3 से संबंधित कोई कुंजी नहीं है - sql, oracle, join

ओरेकल: टी 1 आंतरिक से टी 2 में शामिल हों, जहां टी 3 में तारीख है लेकिन टी 3 - एसक्यूएल, ऑरैकल से जुड़े कोई भी कुंजी नहीं है

मेरे पास 3 टेबल हैं,

T1 has columns: date, id
T2 has columns: selected_id
T3 has columns: start_date, end_date

T4 तालिका बनाने का लक्ष्य।

मैं T1 से T1 में शामिल होना चाहता हूँ T1.id = T2.selected_id पर, जहां T1.date T3.start_date और T3.end_date के बीच है।

इसलिए मैं निम्नानुसार लिखता हूं:

create table T4 as
(select T1.*, T2.* from T1
inner join T2 on T1.id = T2.selected_id
where T1.date between T3.start_date and T3.end_date);

हालाँकि, T3 के पास T1 से संबंधित कोई विदेशी कुंजी नहीं है, इसलिए यह कार्य नहीं करता है। क्या समस्या को हल करने के लिए कोई सुझाव हैं?

उत्तर:

जवाब के लिए 2 № 1

आप कहते हैं कि T3 में केवल 1 पंक्ति है। यह बड़ा अजीब है। बस जिज्ञासु आप यह बता सकते हैं कि आपने इसे किस उद्देश्य से बनाया है?

आपकी समस्या के लिए: आपकी क्वेरी को इस तरह दिखना चाहिए:

create table T4 as
(
select T1.*, T2.*
from
T1 inner join T2
on T1.id = T2.selected_id
join T3
on T1.date between T3.start_date and T3.end_date);