Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
查询以检索没有数据的行,即使不满足Oracle中的where子句条件_Oracle - Fatal编程技术网

查询以检索没有数据的行,即使不满足Oracle中的where子句条件

查询以检索没有数据的行,即使不满足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

我有一个查询,有两个表-表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_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;

听起来,您只需要将连接更改为左连接,这应该可以解决您的问题。如果没有,请提供一些用于帮助我们的表格的示例数据。