/ / Oracle: wybierz z T1 wewnętrznego łączenia T2, gdzie data w T3, ale nie klucz związany z T3 - sql, Oracle, dołączyć

Oracle: wybierz z T1 wewnętrznego łączenia T2, gdzie data w T3, ale nie klucz związany z T3 - sql, Oracle, dołączyć

Mam 3 tabele,

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

mające na celu stworzenie tabeli T4.

Chcę wybrać z T1 dołączyć T2 na T1.id = T2.selected_id, gdzie T1 określa się między T3.start_date a T3.end_date.

Więc piszę w następujący sposób:

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);

Jednak T3 nie ma klucza obcego związanego z T1, do którego można dołączyć, więc nie działa. Czy są jakieś sugestie rozwiązania problemu?

Odpowiedzi:

2 dla odpowiedzi № 1

Mówisz, że T3 ma tylko 1 wiersz. To jest bardzo dziwne. Po prostu ciekawy czy możesz powiedzieć, w jakim celu go stworzyłeś?

Do twojego problemu: twoje zapytanie powinno wyglądać tak:

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);