2016-05-17 4 views

ответ

0

попробовать что-то вроде этого:

select * from table1,table2 
where table1.date BETWEEN (table2.date - '1 day'::interval) 
AND (table2.date + '1 day'::interval) 
and ... 
0

Если бы только +/- 1 день, вы могли бы использовать обходной путь, как это:

select col1, col2, ... 
from table1 
where date_col in (select distinct date_col 
         from table2 
         union all 
         select distinct (date_col - '1 day'::interval) 
         from table2 
         union all 
         select distinct (date_col + '1 day'::interval) 
         from table2 
        ); 

Это довольно хороший, потому что себе свободу подзапрос быть рассчитан только один раз, и будет кэш для сравнения

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