2014-01-31 8 views
-1

Я хочу отфильтровать результаты SQL между двумя заданными датами, а также присоединиться к таблице при условии. Это SQL настоящее время я использую:Left Join With Where Where on Left Table

select 
    event.location, 
    event.dt, 
    event.start 
from event 
where 
    event.dt BETWEEN "2014-02-01" AND "2014-02-04" 
    left join entity on entity.id = event.entity 
    order by dt desc; 

Если я двигаю event.dt BETWEEN на объединение (т.е. на entity.id = . . . and event.dt BETWEEN), он не появляется, чтобы отфильтровать результаты на всех, возвращая мне тонну результатов вне указанного диапазона дат.

+0

Итак, в чем проблема? – sashkello

+0

ГДЕ идет после СОЕДИНЕНИЙ – sashkello

ответ

3

Попробуйте использовать объединение как так

select event.location, 
     event.dt, 
     event.start 
from event left join 
     entity on entity.id = event.entity 
where event.dt BETWEEN "2014-02-01" AND "2014-02-04" 
order by dt desc; 
1

Ваш запрос должен быть, как этот

select 
    event.location, 
    event.dt, 
    event.start 
from event 
    left join entity on entity.id = event.entity 
where 
    event.dt BETWEEN "2014-02-01" AND "2014-02-04" 
    order by event.dt desc;