显示即使计数为零时从另一个表的一列计数
问题描述:
我有两个表A和B。在表A中(的Oracle SQL),一个唯一的列(未主键)代码可以具有在表B.一些记录显示即使计数为零时从另一个表的一列计数
实施例:
代码 “A” 有3项,编码“B “有2项与代码‘C’具有表B. 0项我想查询显示代码及其表B.
A 3
B 2
C 0,
的记录计数,但我没有得到与零个记录代码在表B中,即C 0.
请任何人都可以帮助我的查询。
答
GROUP BY
与LEFT JOIN
解决方案:
select a.code,
a.name,
count(*)
from A a
LEFT JOIN B b ON a.code = b.code
group by a.code, a.name
相关子查询的解决方案:
select a.code,
a.name,
(select count(*) from B b where a.code = b.code)
from A a
也许你需要做SELECT DISTINCT
这里。
+0
谢谢所有..它适用于我.. :-) – user3615185
答
你正在做一些不正确的事情。这个工作对我来说:
select A.code, Count(B.code) from A
left join B on A.code = b.code
group by A.code
+0
这是完美的解决方案 –
答
这是很容易,你只需要采取列基础上,你要指望像我一样“A.code”,不要忘了按该列分组,并使用COUNT()。 检查下面的解决方案
select A.code, Count(B.code) AS Count
from A
left join B on A.code = b.code
group by A.code
对GROUP BY执行LEFT JOIN并计数。 – jarlh
我试过了..但是没有正确地得到它..你要告诉我上述场景的确切查询 – user3615185
向我们展示示例表数据,你的查询(不能正常工作的)和预期结果! – jarlh