左加入可选的地方
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 来比较日期值。
我有两个 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 来比较日期值。