2016-11-02 2 views
2

Мне нужно запросить дату со значением между двумя другими датами, которые поступают из другой таблицы. Что-то вроде этого:Как запросить дату между двумя другими датами в другой таблице

select * from table1 where date_table1 BETWEEN (select date1,date2 from table2 where id=1) 

Как я могу это сделать в SQl?

ответ

2

Просто используйте join или exists. Как вы написали это:

select t1.* 
from table1 t1 
where exists (select 1 
       from table2 t2 
       where t1.date between t2.date1 and t2.date2 
      ); 
+0

Tks вас. Это здорово –

+1

@ DucHoang вы могли бы принять ответ, пожалуйста? – Eugene

0

Я не уверен, что вы пытаетесь сделать, но, как вы выразился вопрос кажется неполным. Исходя из того, что вы предоставили, я думаю, что-то, как это будет работать:

select t1.* 
    from table1 t1 
inner join table2 t2 on t2.date1 <= t1.date_table1 and t1.date_table1 < t2.date2 
where t2.somefield = [somelimitingcondition] 
0

Это должно работать при условии, каждый подзапрос возвращает только одно значение

 


    SELECT * from table1 t1 
    WHERE t1.date_table1 
    BETWEEN 
    (SELECT t2.date1 from table2 t2 WHERE t1.id=1) 
    AND (SELECT tt2.date2 from table2 tt2 WHERE t1.id=1); 

 
Смежные вопросы