左加入可选的地方

Left Join with where optional

我有两个 table 和一个子句 where,但我想让左侧始终独立于子句 where。

示例

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

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

我一直在查询,它在 table B 中不存在值或 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

在我的 table 中有一个 tb.date = '2015-07-05' 的注册表。此查询有效,但我尝试使用 tb.date = '2015-07-04' 查询在连接左侧获取查询,但不要带 table_b '2015-07 的行-05'.

我想在连接中独立于 where 子句获取左侧。

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 来比较日期值。