2015-07-05 4 views
0

У меня есть две таблицы и предложение где, но я хочу, чтобы левая сторона всегда была независимой от предложения где.Влево Присоединиться, где дополнительно

Пример

table a 
----------------- 
id 
nome 

table B 
----------------- 
id 
nome 
date 
id_a 

Я был запрос, и он работает, когда не существует значения в таблице В, или когда условие WHERE выборки.

select ta.* from table_a ta 
left join table_b tb on ta.id = tb.id_a 
where 
tb.date = '2015-07-05' or tb.id is null 

В моей таблице есть реестр с tb.date = '2015-07-05'. Этот запрос работает, но я пытаюсь выполнить запрос с tb.date = '2015-07-04' выборка запроса с левой стороны в join, но не приносите строку, которая имеет table_b '2015-07-05'.

Я хочу извлечь левую сторону в join независимо от предложения где.

+0

'' 2015-07-05'' является строкой, а не 'DATE'. Или используйте 'TO_DATE' или ** ANSI ** DATE literal' DATE '2015-07-05''. –

ответ

3
select ta.* from table_a ta 
left join table_b tb on (ta.id = tb.id_a and tb.date = '2015-07-05'); 

Кроме того, «2015-07-05» считается строкой в ​​Oracle. Всегда используйте to_date для сравнения значений даты.

+0

Спасибо @Invalidserach. –