查询以检索没有数据的行,即使不满足Oracle中的where子句条件
我有一个查询,有两个表-表a,表B 查询:查询以检索没有数据的行,即使不满足Oracle中的where子句条件,oracle,Oracle,我有一个查询,有两个表-表a,表B 查询: select a.name, count(b.code) from tableA a join tableA b on b.id = a.id where a.name = ('AA','BB','WWW') group by a.name; 该数据仅适用于AA,因此它将结果显示为 AA 5 但我想将数据显示为: AA 5 BB 0 WWW 0 您可以将期望的名称收集到单独的表/子查询中,然后与数据表执行左联接,如 with exp_name
select a.name, count(b.code)
from tableA a
join tableA b on b.id = a.id
where a.name = ('AA','BB','WWW')
group by a.name;
该数据仅适用于AA,因此它将结果显示为
AA 5
但我想将数据显示为:
AA 5
BB 0
WWW 0
您可以将期望的名称收集到单独的表/子查询中,然后与数据表执行左联接,如
with exp_names as (
select 'AA' name from dual
union all
select 'BB' from dual
union all
select 'WWW' from dual
)
select en.name, count(b.code)
from exp_names en
left join tableA a on en.name = a.name
left join tableB b on b.id = a.id
group by en.name;
听起来,您只需要将连接更改为左连接,这应该可以解决您的问题。如果没有,请提供一些用于帮助我们的表格的示例数据。